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)