aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-01-03 09:45:18 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-01-03 09:45:18 +0000
commitf09b77caca9f023cf007fed9746490ba1e7bd774 (patch)
treec1f88d0ad74b9b4a4944189528e7f53b4bc11bd0 /gcc
parentdf8e2b4f17fb21187f8e31632f03016f92fb980d (diff)
downloadgcc-f09b77caca9f023cf007fed9746490ba1e7bd774.zip
gcc-f09b77caca9f023cf007fed9746490ba1e7bd774.tar.gz
gcc-f09b77caca9f023cf007fed9746490ba1e7bd774.tar.bz2
re PR lto/55848 (internal compiler error: verify_cgraph_node failed (with `-flto' and `-fopenmp'))
2013-01-03 Richard Biener <rguenther@suse.de> PR lto/55848 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always prefer a built-in decl. From-SVN: r194839
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lto-symtab.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0c5b14d..a2a5cb3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2013-01-03 Richard Biener <rguenther@suse.de>
+
+ PR lto/55848
+ * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
+ prefer a built-in decl.
+
2013-01-03 Jakub Jelinek <jakub@redhat.com>
* gcc.c (process_command): Update copyright notice dates.
diff --git a/gcc/lto-symtab.c b/gcc/lto-symtab.c
index 295fd37..b6ff028 100644
--- a/gcc/lto-symtab.c
+++ b/gcc/lto-symtab.c
@@ -439,6 +439,16 @@ lto_symtab_merge_decls_1 (symtab_node first)
&& COMPLETE_TYPE_P (TREE_TYPE (e->symbol.decl)))
prevailing = e;
}
+ /* For variables prefer the builtin if one is available. */
+ else if (TREE_CODE (prevailing->symbol.decl) == FUNCTION_DECL)
+ {
+ for (e = first; e; e = e->symbol.next_sharing_asm_name)
+ if (DECL_BUILT_IN (e->symbol.decl))
+ {
+ prevailing = e;
+ break;
+ }
+ }
}
symtab_prevail_in_asm_name_hash (prevailing);