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
This commit is contained in:
Jakub Jelinek 2014-01-16 20:22:08 +01:00 committed by Jakub Jelinek
parent d248893664
commit 355e605979
2 changed files with 18 additions and 1 deletions

View File

@ -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 Marek Polacek <polacek@redhat.com>
Backport from mainline

View File

@ -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;