Дано:
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)