aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-symtab.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-05-22 12:56:53 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-05-22 12:56:53 +0000
commitbd9eb5dacc6e850014842b8f248a1c38c43a15a4 (patch)
tree75a0267d14937ac168a33af993b2c8c63ed5a1d2 /gcc/lto-symtab.c
parent7c9b8fb912cdbac53aab302ab0e6b1b0831036df (diff)
downloadgcc-bd9eb5dacc6e850014842b8f248a1c38c43a15a4.zip
gcc-bd9eb5dacc6e850014842b8f248a1c38c43a15a4.tar.gz
gcc-bd9eb5dacc6e850014842b8f248a1c38c43a15a4.tar.bz2
gimple.c (gimple_types_compatible_p): Check type qualifications before merging pointer to complete and pointer to...
2010-05-22 Richard Guenther <rguenther@suse.de> * gimple.c (gimple_types_compatible_p): Check type qualifications before merging pointer to complete and pointer to incomplete type. * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure we use our own resolution algorithm. The gold linker plugin doesn't do the job we want it to do here. lto/ * lto.c (read_cgraph_and_symbols): Do not collect. From-SVN: r159696
Diffstat (limited to 'gcc/lto-symtab.c')
-rw-r--r--gcc/lto-symtab.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c
index 28e9aa3..f02824d 100644
--- a/gcc/lto-symtab.c
+++ b/gcc/lto-symtab.c
@@ -463,7 +463,13 @@ lto_symtab_resolve_symbols (void **slot)
if (TREE_CODE (e->decl) == FUNCTION_DECL)
e->node = cgraph_get_node (e->decl);
else if (TREE_CODE (e->decl) == VAR_DECL)
- e->vnode = varpool_get_node (e->decl);
+ {
+ e->vnode = varpool_get_node (e->decl);
+ /* The LTO plugin for gold doesn't handle common symbols
+ properly. Let us choose manually. */
+ if (DECL_COMMON (e->decl))
+ e->resolution = LDPR_UNKNOWN;
+ }
}
e = (lto_symtab_entry_t) *slot;