re PR middle-end/42095 (g++.dg/lto/20081118-1 cp_lto_20081118-1_0.o-cp_lto_20081118-1_1.o link)

PR middle-end/42095
	* tree.c: Include cgraph.h.
	(cp_fix_function_decl_p): Don't return true for same_body aliases.
	* Make-lang.in (cp/tree.o): Depend on $(CGRAPH_H).

From-SVN: r154449
This commit is contained in:
Jakub Jelinek 2009-11-23 17:10:19 +01:00 committed by Jakub Jelinek
parent a7194bfea9
commit 87501227a9
3 changed files with 19 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2009-11-23 Jakub Jelinek <jakub@redhat.com>
PR middle-end/42095
* tree.c: Include cgraph.h.
(cp_fix_function_decl_p): Don't return true for same_body aliases.
* Make-lang.in (cp/tree.o): Depend on $(CGRAPH_H).
2009-11-23 Dodji Seketeli <dodji@redhat.com>
PR c++/14777

View File

@ -281,7 +281,7 @@ cp/cvt.o: cp/cvt.c $(CXX_TREE_H) $(TM_H) cp/decl.h $(FLAGS_H) toplev.h \
cp/search.o: cp/search.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) toplev.h $(RTL_H)
cp/tree.o: cp/tree.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) toplev.h $(RTL_H) \
insn-config.h $(INTEGRATE_H) $(TREE_INLINE_H) $(REAL_H) gt-cp-tree.h \
$(TARGET_H) debug.h $(TREE_FLOW_H)
$(TARGET_H) debug.h $(TREE_FLOW_H) $(CGRAPH_H)
cp/ptree.o: cp/ptree.c $(CXX_TREE_H) $(TM_H)
cp/rtti.o: cp/rtti.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) toplev.h convert.h \
$(TARGET_H) $(C_PRAGMA_H) gt-cp-rtti.h

View File

@ -37,6 +37,7 @@ along with GCC; see the file COPYING3. If not see
#include "target.h"
#include "convert.h"
#include "tree-flow.h"
#include "cgraph.h"
static tree bot_manip (tree *, int *, void *);
static tree bot_replace (tree *, int *, void *);
@ -3125,7 +3126,16 @@ cp_fix_function_decl_p (tree decl)
if (!gimple_has_body_p (decl)
&& !DECL_THUNK_P (decl)
&& !DECL_EXTERNAL (decl))
return true;
{
struct cgraph_node *node = cgraph_get_node (decl);
/* Don't fix same_body aliases. Although they don't have their own
CFG, they share it with what they alias to. */
if (!node
|| node->decl == decl
|| !node->same_body)
return true;
}
return false;
}