From: Jan Hubicka Date: Fri, 30 Apr 2010 18:45:47 +0000 (+0200) Subject: lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with varpool. X-Git-Tag: releases/gcc-4.6.0~7553 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd71491e1cc5df228efbc518502cdc373c2d7585;p=thirdparty%2Fgcc.git lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with varpool. * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with varpool. (lto_symtab_merge_decls_1): Remove logic looking for an initializer. From-SVN: r158944 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a7de8f10f1c..e370a9f658c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-04-30 Jan Hubicka + + * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with varpool. + (lto_symtab_merge_decls_1): Remove logic looking for an initializer. + 2010-04-30 Jan Hubicka * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): New. diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c index a35d82fe3d42..b5430a5ab74f 100644 --- a/gcc/lto-symtab.c +++ b/gcc/lto-symtab.c @@ -406,11 +406,7 @@ lto_symtab_resolve_can_prevail_p (lto_symtab_entry_t e) /* A variable should have a size. */ else if (TREE_CODE (e->decl) == VAR_DECL) - return (DECL_SIZE (e->decl) != NULL_TREE - /* The C++ frontend retains TREE_STATIC on the declaration - of foo_ in struct Foo { static Foo *foo_; }; but it is - not a definition. g++.dg/lto/20090315_0.C. */ - && !DECL_EXTERNAL (e->decl)); + return (e->vnode && e->vnode->finalized); gcc_unreachable (); } @@ -588,17 +584,6 @@ lto_symtab_merge_decls_1 (void **slot, void *data ATTRIBUTE_UNUSED) while (!prevailing->vnode && prevailing->next) prevailing = prevailing->next; - /* We do not stream varpool nodes, so the first decl has to - be good enough for now. - ??? For QOI choose a variable with readonly initializer - if there is one. This matches C++ - struct Foo { static const int i = 1; }; without a real - definition. */ - if (TREE_CODE (prevailing->decl) == VAR_DECL) - while (!(TREE_READONLY (prevailing->decl) - && DECL_INITIAL (prevailing->decl)) - && prevailing->next) - prevailing = prevailing->next; } /* Move it first in the list. */