[Bug c++/19634] [4.0 regression] Infinite memory usage on Alpha
rth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Feb 10 10:59:00 GMT 2005
------- 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
More information about the Gcc-bugs
mailing list