From: Jakub Jelinek Date: Thu, 16 Jan 2014 19:22:08 +0000 (+0100) Subject: re PR debug/54694 (internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2o... X-Git-Tag: releases/gcc-4.7.4~314 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=355e60597971748ff5a87f0e6e578d85a436a468;p=thirdparty%2Fgcc.git re PR debug/54694 (internal compiler error: in dwarf2out_frame_debug_expr, at dwarf2out.c:2387) PR debug/54694 * gcc.target/i386/pr9771-1.c (main): Rename to... (real_main): ... this. Add __asm name "main". (ASMNAME, ASMNAME2, STRING): Define. From-SVN: r206681 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 23c358b894e8..c009bf8a0c2a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-01-16 Jakub Jelinek + + PR debug/54694 + * gcc.target/i386/pr9771-1.c (main): Rename to... + (real_main): ... this. Add __asm name "main". + (ASMNAME, ASMNAME2, STRING): Define. + 2014-01-16 Marek Polacek Backport from mainline diff --git a/gcc/testsuite/gcc.target/i386/pr9771-1.c b/gcc/testsuite/gcc.target/i386/pr9771-1.c index 38586fe9725d..daad319c3790 100644 --- a/gcc/testsuite/gcc.target/i386/pr9771-1.c +++ b/gcc/testsuite/gcc.target/i386/pr9771-1.c @@ -45,7 +45,17 @@ void test(void) exit(0); } -int main() +/* main usually performs dynamic realignment of the stack in case + _start would fail to properly align the stack, but for dynamic + stack realignment we need frame pointer which is incompatible + with -ffixed-ebp and the global register var. So, cheat here + and hide from the compiler that main is really main. */ +#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname) +#define ASMNAME2(prefix, cname) STRING (prefix) cname +#define STRING(x) #x +int real_main() __asm (ASMNAME ("main")); + +int real_main() { test(); return 0;