------- Additional Comments From rth at gcc dot gnu dot org 2005-02-10 01:59 ------- Not a reload bug. RTL state gets mangled by pop_function_context_from called underneath mangle_decl_string. We may be able to work around this problem like so, but I'm still not certain that we're not borking something. This can only be truely fixed by not doing such gross push/pop state changes within the c++ front end.
Index: passes.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/passes.c,v retrieving revision 2.65 diff -u -p -d -r2.65 passes.c --- passes.c 1 Feb 2005 10:03:09 -0000 2.65 +++ passes.c 10 Feb 2005 01:57:18 -0000 @@ -1530,6 +1530,12 @@ rest_of_compilation (void) if (rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount) goto exit_rest_of_compilation; + /* Make sure rtl for the current function is set at this point. This + may recurse in "interesting" ways for c++, which can hork passes. + It is 100% certain that we'll need this rtl, so this does not cause + extra work. */ + (void) DECL_RTL (current_function_decl); + rest_of_handle_jump (); rest_of_handle_eh (); -- What |Removed |Added ---------------------------------------------------------------------------- CC| |rth at gcc dot gnu dot org AssignedTo|rth at gcc dot gnu dot org |unassigned at gcc dot gnu | |dot org Status|ASSIGNED |NEW Component|target |c++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19634