[Bug middle-end/41257] [4.5 Regression] Bogus error '*.LTHUNK0' aliased to undefined symbol '_ZN1CD1Ev'
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Sep 9 13:29:00 GMT 2009
------- Comment #7 from rguenth at gcc dot gnu dot org 2009-09-09 13:28 -------
This is because we now emit thunks for the (unused) destructor. The following
seems to work for both testcases, testing is pending
Index: cgraphunit.c
===================================================================
--- cgraphunit.c (revision 151557)
+++ cgraphunit.c (working copy)
@@ -1036,7 +1036,8 @@ cgraph_emit_thunks (void)
emitted, but we cannot know that until the inliner and other
IPA passes have run (see the sequencing of the call to
cgraph_mark_functions_to_output in cgraph_optimize). */
- if (!DECL_EXTERNAL (n->decl))
+ if (n->reachable
+ && !DECL_EXTERNAL (n->decl))
lang_hooks.callgraph.emit_associated_thunks (n->decl);
}
}
@@ -1053,10 +1054,6 @@ cgraph_finalize_compilation_unit (void)
/* Emit size functions we didn't inline. */
finalize_size_functions ();
- /* Emit thunks, if needed. */
- if (lang_hooks.callgraph.emit_associated_thunks)
- cgraph_emit_thunks ();
-
/* Call functions declared with the "constructor" or "destructor"
attribute. */
cgraph_build_cdtor_fns ();
@@ -1067,10 +1064,20 @@ cgraph_finalize_compilation_unit (void)
fflush (stderr);
}
+ /* Gimplify and lower all functions, compute reachability and
+ remove unreachable nodes. */
+ timevar_push (TV_CGRAPH);
+ cgraph_analyze_functions ();
+ timevar_pop (TV_CGRAPH);
+
+ /* Emit thunks for reachable nodes, if needed. */
+ if (lang_hooks.callgraph.emit_associated_thunks)
+ cgraph_emit_thunks ();
+
/* Mark alias targets necessary and emit diagnostics. */
finish_aliases_1 ();
- /* Gimplify and lower all functions. */
+ /* Gimplify and lower thunks. */
timevar_push (TV_CGRAPH);
cgraph_analyze_functions ();
timevar_pop (TV_CGRAPH);
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |ASSIGNED
Last reconfirmed|2009-09-04 17:33:57 |2009-09-09 13:28:36
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41257
More information about the Gcc-bugs
mailing list