------- Comment #10 from ro at techfak dot uni-bielefeld dot de 2008-10-31 13:27 ------- Subject: Re: [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64 UNIX
Since native reghunting was so slow, I've finally switched to trying with a cross compiler (from Solaris 10/x86), and could reproduce the problem. It even turned out that there are two separate breakages involved. The first is caused by this change: 2008-04-01 Jan Hubicka <[EMAIL PROTECTED]> * function.c (free_after_compilation): Free epilogue_delay_list. (prepare_function_start): Assert that previous compilation was freed. Since that change, the first gcc_assert() in prepare_function_start() triggers: Breakpoint 1, fancy_abort (file=0x8919114 "/vol/gcc/src/gcc-reghunt/gcc/function.c", line=3940, function=0x89196cc "prepare_function_start") at /vol/gcc/src/gcc-reghunt/gcc/diagnostic.c:654 (gdb) where #0 fancy_abort (file=0x8919114 "/vol/gcc/src/gcc-reghunt/gcc/function.c", line=3940, function=0x89196cc "prepare_function_start") at /vol/gcc/src/gcc-reghunt/gcc/diagnostic.c:654 #1 0x08424619 in prepare_function_start () at /vol/gcc/src/gcc-reghunt/gcc/function.c:3940 #2 0x08424746 in init_function_start (subr=0xfee57620) at /vol/gcc/src/gcc-reghunt/gcc/function.c:3988 #3 0x085c711e in tree_rest_of_compilation (fndecl=0xfee57620) at /vol/gcc/src/gcc-reghunt/gcc/tree-optimize.c:408 #4 0x08783ec9 in cgraph_expand_function (node=0xfedbef3c) at /vol/gcc/src/gcc-reghunt/gcc/cgraphunit.c:1157 #5 0x0878573a in cgraph_optimize () at /vol/gcc/src/gcc-reghunt/gcc/cgraphunit.c:1220 #6 0x0816255f in cp_write_global_declarations () at /vol/gcc/src/gcc-reghunt/gcc/cp/decl2.c:3471 #7 0x0855617e in compile_file () at /vol/gcc/src/gcc-reghunt/gcc/toplev.c:971 #8 0x08557b7c in do_compile () at /vol/gcc/src/gcc-reghunt/gcc/toplev.c:2161 #9 0x08557be2 in toplev_main (argc=2, argv=0x80476f8) at /vol/gcc/src/gcc-reghunt/gcc/toplev.c:2193 #10 0x0828565f in main (argc=2, argv=0x80476f8) at /vol/gcc/src/gcc-reghunt/gcc/main.c:35 Later, the following change 2008-04-03 Jan Hubicka <[EMAIL PROTECTED]> PR tree-optimization/35795 * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation. * sparc/sparc.c (sparc_output_mi_thunk): Likewise. * ia64/ia64.c (ia64_output_mi_thunk): Likewise. * m68k/m68k.c (m68k_output_mi_thunk): Likewise. * score/score3.c (score3_output_mi_thunk): Likewise. * score/score7.c (score7_output_mi_thunk): Likewise. * mips/mips.c (mips_output_mi_thunk): Likewise. broke it even more and introduced the SEGV described in the original PR. If I disable the gcc_assert() and remove the free_after_compilation() at the end of alpha_output_mi_thunk_osf(), I'm finally able to compile my minimized testcase and bootstrap mainline on alpha-dec-osf5.1b. Since your two changes introduced this breakage and it is easily reproducible in a cross compiler, could you please investigate and fix this? Thanks. Rainer -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36851