http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59929

            Bug ID: 59929
           Summary: -mno-accumulate-outgoing-args doesn't work with x32
           Product: gcc
           Version: 4.8.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
                CC: ubizjak at gmail dot com

[hjl@gnu-mic-2 tmp]$ cat /tmp/testf.c
void
test (float x1, float x2, float x3, float x4, float x5, float x6,
      float x7, float x8, float x9, float x10, float x11, float x12,
      float x13, float x14, float x15, float x16)
{
  if (x1 != 91)
    __builtin_abort ();
  if (x15 != 105)
    __builtin_abort ();
}

float x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13,
      x14, x15, x16;

int
main ()
{
  x1 = 91;
  x2 = 92;
  x3 = 93;
  x4 = 94;
  x5 = 95;
  x6 = 96;
  x7 = 97;
  x8 = 98;
  x9 = 99;
  x10 = 100;
  x11 = 101;
  x12 = 102;
  x13 = 103;
  x14 = 104;
  x15 = 105;
  x16 = 106;
  test (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13,
    x14, x15, x16);
  return 0;
}

[hjl@gnu-mic-2 tmp]$ gcc /tmp/testf.c -mno-accumulate-outgoing-args -mx32 -g
[hjl@gnu-mic-2 tmp]$ gdb a.out 
GNU gdb (GDB) 7.6.50.20131208-cvs
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...done.
(gdb) r
Starting program: /tmp/a.out 

Program received signal SIGABRT, Aborted.
0xf7a55192 in raise () from /libx32/libc.so.6
(gdb) f 1
#1  0xf7a56776 in abort () from /libx32/libc.so.6
(gdb) f 2
#2  0x00400449 in test (x1=91, x2=92, x3=93, x4=94, x5=95, x6=96, x7=97, 
    x8=98, x9=99, x10=100, x11=101, x12=102, x13=103, x14=104, x15=106, 
    x16=1.40129846e-45) at /tmp/testf.c:9
9        __builtin_abort ();
(gdb)

Reply via email to