https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81693

--- Comment #8 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Dominique d'Humieres from comment #7)
> > Created attachment 41917 [details]
> > A patch
> >
> > Please try this.
> 
> Sorry it does not work:
> 

Please compile gcc.dg/torture/pr25967-1.c with -g and run
it under debugger:

(gdb) r
Starting program: /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/a.out 
Missing separate debuginfos, use: dnf debuginfo-install
glibc-2.25-7.0.fc26.x86_64

Breakpoint 3, fn ()
    at
/export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.dg/torture/pr25967-1.c:43
43        asm volatile ("lea " WORD_SIZE "(%%" STACK_POINTER "), %0\n\t"
(gdb) p/x $rsp
$1 = 0x7fffffffd570
 (gdb) disass main
Dump of assembler code for function main:
   0x0000000000400450 <+0>:     and    $0xfffffffffffffff0,%rsp
   0x0000000000400454 <+4>:     pushq  $0x12345675
   0x0000000000400459 <+9>:     pushq  $0x12345674
   0x000000000040045e <+14>:    pushq  $0x12345673
   0x0000000000400463 <+19>:    pushq  $0x12345672
   0x0000000000400468 <+24>:    pushq  $0x12345671
   0x000000000040046d <+29>:    pushq  $0x12345670
   0x0000000000400472 <+34>:    jmpq   0x400557 <fn>
   0x0000000000400477 <+39>:    xor    %eax,%eax
   0x0000000000400479 <+41>:    retq   
End of assembler dump.
(gdb) c
Continuing.

Breakpoint 1, 0x00007ffe9b3ab1e0 in exit () from /lib64/libc.so.6
(gdb) p/x $rsp
$2 = 0x7fffffffd568
(gdb) 

Please find out why your stack isn't aligned to 16 bytes when exit is
called.

Reply via email to