* cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
cdtors, set DECL_PRESERVE_P.
* ipa.c (cgraph_externally_visible_p): Return true if declaration
should be preseved.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157779
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/41674
+ * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
+ cdtors, set DECL_PRESERVE_P.
+ * ipa.c (cgraph_externally_visible_p): Return true if declaration
+ should be preseved.
+
2010-03-27 Uros Bizjak <ubizjak@gmail.com>
PR tree-optimization/43528
DECL_ARTIFICIAL (decl) = 1;
DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl) = 1;
DECL_SAVED_TREE (decl) = body;
- TREE_PUBLIC (decl) = ! targetm.have_ctors_dtors;
+ if (!targetm.have_ctors_dtors)
+ {
+ TREE_PUBLIC (decl) = 1;
+ DECL_PRESERVE_P (decl) = 1;
+ }
DECL_UNINLINABLE (decl) = 1;
DECL_INITIAL (decl) = make_node (BLOCK);
return false;
if (!whole_program)
return true;
+ if (DECL_PRESERVE_P (node->decl))
+ return true;
/* COMDAT functions must be shared only if they have address taken,
otherwise we can produce our own private implementation with
-fwhole-program. */