diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-01-16 20:15:46 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-01-16 20:15:46 +0100 |
commit | 2af4ea89e5630063b961c4d026412bb7d5aa8832 (patch) | |
tree | d66a8149ead9cde238739a294f2a0fb1b04f8493 /gcc | |
parent | e4e6a4af0b6dca48bb0d7207da651c5be4ff8256 (diff) | |
download | gcc-2af4ea89e5630063b961c4d026412bb7d5aa8832.zip gcc-2af4ea89e5630063b961c4d026412bb7d5aa8832.tar.gz gcc-2af4ea89e5630063b961c4d026412bb7d5aa8832.tar.bz2 |
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: r206679
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr9771-1.c | 12 |
2 files changed, 18 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 868593b..b874c57 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-01-16 Jakub Jelinek <jakub@redhat.com> + + 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 Nick Clifton <nickc@redhat.com> PR middle-end/28865 diff --git a/gcc/testsuite/gcc.target/i386/pr9771-1.c b/gcc/testsuite/gcc.target/i386/pr9771-1.c index 520259c..9fa21ff 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; |