From: hubicka Date: Fri, 30 Apr 2010 18:45:47 +0000 (+0000) Subject: * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with varpool. X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=a843f019cbeb5fcb55d441e839d17817105d8c8f * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with varpool. (lto_symtab_merge_decls_1): Remove logic looking for an initializer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158944 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a7de8f10f1..e370a9f658c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 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. * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans. * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p. diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c index a35d82fe3d4..b5430a5ab74 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. */