https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63318
--- Comment #6 from Richard Yao <ryao at gentoo dot org> --- Created attachment 33523 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33523&action=edit Updated syscall.c That worked, although I am not sure how given that the string is missing in assembly output: $ gcc -S -o - syscall.c -Wall -Wextra -fno-strict-aliasing -fwrapv -O0 .file "syscall.c" .text .type syscall_1, @function syscall_1: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movq %rdi, -8(%rbp) movq %rsi, -16(%rbp) movq %rdx, -24(%rbp) movq %rcx, -32(%rbp) movq -8(%rbp), %rax movq -16(%rbp), %rdi movq -24(%rbp), %rsi movq -32(%rbp), %rdx #APP # 14 "syscall.c" 1 syscall # 0 "" 2 #NO_APP popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size syscall_1, .-syscall_1 .globl main .type main, @function main: .LFB1: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 pushq %rbx subq $56, %rsp .cfi_offset 3, -24 movq %fs:40, %rax movq %rax, -24(%rbp) xorl %eax, %eax movabsq $8022916924116329800, %rax movq %rax, -48(%rbp) movl $560229490, -40(%rbp) movw $10, -36(%rbp) movq $14, -56(%rbp) movq -56(%rbp), %rdx leaq -48(%rbp), %rax movq %rdx, %rcx movq %rax, %rdx movl $1, %esi movl $1, %edi call syscall_1 movl $0, %eax movq -24(%rbp), %rbx xorq %fs:40, %rbx je .L5 call __stack_chk_fail .L5: addq $56, %rsp popq %rbx popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE1: .size main, .-main .ident "GCC: (Gentoo 4.8.3 p1.1, pie-0.5.9) 4.8.3" .section .note.GNU-stack,"",@progbits $ gcc syscall.c -Wall -Wextra -fno-strict-aliasing -fwrapv -O0 $ ./a.out Hello World!