arm failure in g++.other/eh2.C

Philip Blundell philb@gnu.org
Mon May 28 15:18:00 GMT 2001


This seems to be a regression from 2.95.  I can't reproduce it with a 
cross-compiler, but it happens both for me and for the netwinder.org 
autobuilder with a native bootstrap.

Here's the crash:

Program received signal SIGSEGV, Segmentation fault.
0x14c14c in sjlj_mark_call_sites (lp_info=0x4a6af8)
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2113
2113                  if (GET_CODE (before) == CODE_LABEL)
(gdb) bt
#0  0x14c14c in sjlj_mark_call_sites (lp_info=0x4a6af8)
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2113
#1  0x14c95c in sjlj_build_landing_pads ()
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2323
#2  0x14ca00 in finish_eh_generation ()
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2364
#3  0xfc5f0 in rest_of_compilation (decl=0x4018dc98)
    at /home/pb/egcs/3.0/gcc/gcc/toplev.c:2901
#4  0xce1fc in genrtl_finish_function (fn=0x4018dc98)
    at /home/pb/egcs/3.0/gcc/gcc/cp/semantics.c:2662
#5  0xcdc68 in expand_body (fn=0x4018dc98)
    at /home/pb/egcs/3.0/gcc/gcc/cp/semantics.c:2448
#6  0x8b520 in yyparse_1 () at parse.y:759
#7  0xf4a40 in yyparse () at /home/pb/egcs/3.0/gcc/gcc/c-lex.c:158
#8  0xfb700 in compile_file (
    name=0x49acc4 "/home/pb/egcs/3.0/gcc/gcc/testsuite/g++.old-deja/g++.other/eh2.C") at /home/pb/egcs/3.0/gcc/gcc/toplev.c:2332
#9  0x1008b8 in main (argc=3, argv=0xbffffa1c)
    at /home/pb/egcs/3.0/gcc/gcc/toplev.c:4944
#10 0x400401e0 in __libc_start_main () from /lib/libc.so.6

The problem seems to be that it walks off the front of the chain of insns: 
"before" gets set to NULL when nparm_regs is still 1.

I'm not sure if this only occurs with a compiler that's been 3-staged, or if I 
can make it happen when cc1plus was built with a known-working compiler.  I'll 
try to establish this.

p.


-------------- next part --------------
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Content-Type: text/plain; charset=us-ascii

This seems to be a regression from 2.95.  I can't reproduce it with a 
cross-compiler, but it happens both for me and for the netwinder.org 
autobuilder with a native bootstrap.

Here's the crash:

Program received signal SIGSEGV, Segmentation fault.
0x14c14c in sjlj_mark_call_sites (lp_info=0x4a6af8)
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2113
2113                  if (GET_CODE (before) == CODE_LABEL)
(gdb) bt
#0  0x14c14c in sjlj_mark_call_sites (lp_info=0x4a6af8)
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2113
#1  0x14c95c in sjlj_build_landing_pads ()
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2323
#2  0x14ca00 in finish_eh_generation ()
    at /home/pb/egcs/3.0/gcc/gcc/except.c:2364
#3  0xfc5f0 in rest_of_compilation (decl=0x4018dc98)
    at /home/pb/egcs/3.0/gcc/gcc/toplev.c:2901
#4  0xce1fc in genrtl_finish_function (fn=0x4018dc98)
    at /home/pb/egcs/3.0/gcc/gcc/cp/semantics.c:2662
#5  0xcdc68 in expand_body (fn=0x4018dc98)
    at /home/pb/egcs/3.0/gcc/gcc/cp/semantics.c:2448
#6  0x8b520 in yyparse_1 () at parse.y:759
#7  0xf4a40 in yyparse () at /home/pb/egcs/3.0/gcc/gcc/c-lex.c:158
#8  0xfb700 in compile_file (
    name=0x49acc4 "/home/pb/egcs/3.0/gcc/gcc/testsuite/g++.old-deja/g++.other/eh2.C") at /home/pb/egcs/3.0/gcc/gcc/toplev.c:2332
#9  0x1008b8 in main (argc=3, argv=0xbffffa1c)
    at /home/pb/egcs/3.0/gcc/gcc/toplev.c:4944
#10 0x400401e0 in __libc_start_main () from /lib/libc.so.6

The problem seems to be that it walks off the front of the chain of insns: 
"before" gets set to NULL when nparm_regs is still 1.

I'm not sure if this only occurs with a compiler that's been 3-staged, or if I 
can make it happen when cc1plus was built with a known-working compiler.  I'll 
try to establish this.

p.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: Exmh version 2.1.1 10/15/1999 (debian)

iD8DBQE7Es6fVTLPJe9CT30RAlDlAJ9jH20xd7BzWnwEzDr+3xZHEnuDSgCgsTIK
PQXsbY5BlTYEvST92jNklUw=
=Bl5b
-----END PGP SIGNATURE-----


More information about the Gcc-bugs mailing list