Дано: int main () { int i = 10; int *q = new int [i]; return 0; } компилятор Sun Sudio 12. Платформа x86_64. Команда CC -xport64=full, ворнинг на строку "int *q = new int [i]": Converting an "int" into a 64-bit integer causes sign extension. main: .L_y1: pushq %rbp .L_y2: movq %rsp,%rbp .L_y3: subq $32,%rsp .L1: .L2: / File main.cpp: / Line 2 / Line 3 movl $10, -8(%rbp) / Line 4 movl -8(%rbp),%eax cltq movq %rax, %r8 leaq 0(,%r8,4), %rdi movl $0, %eax call __1c2N6FL_pv_ movq %rax, %r8 movq %r8, -24(%rbp) movq -24(%rbp), %r8 movq %r8, -16(%rbp) / Line 6 movl $0, -4(%rbp) jmp .L3 .align 4 / Line 7 .L3: movl -4(%rbp), %eax leave ret Вопрос: компилятор прав? Почему gcc молчит? Как этот сановский компилятор получше заткнуть?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Почему компилятор тупит? (2016)
- Форум Assembler рекурсия (2020)
- Форум [x86_64/asm/c] использование параметров в C-функции (2011)
- Форум прочитать из стека (2020)
- Форум gcc странно инициализирует std::vector внутри структурки (2014)
- Форум попытка вывести на экран массив символов (2020)
- Форум Nasm, условия перехода (2015)
- Форум pointer on the stack (2016)
- Форум Методика поиска аналогичного кода в бинарном файле нового релиза. (2021)
- Статьи Линукс, ассемблер и X11 (2023)