This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/36851] [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64 UNIX
- From: "ro at techfak dot uni-bielefeld dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 31 Oct 2008 13:27:06 -0000
- Subject: [Bug target/36851] [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64 UNIX
- References: <bug-36851-279@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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 <jh@suse.cz>
* 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 <jh@suse.cz>
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