From d4e9d2906a90151d1239e7b32b00f7cb46b045fa Mon Sep 17 00:00:00 2001
From: mliska <mliska@suse.cz>
Date: Tue, 3 Mar 2015 10:36:59 +0100
Subject: [PATCH] Fix PR ipa/65287.
gcc/testsuite/ChangeLog:
2015-03-03 Martin Liska <mliska@suse.cz>
* gcc.dg/ipa/pr65287.c: New test.
gcc/ChangeLog:
2015-03-03 Martin Liska <mliska@suse.cz>
PR ipa/65287
* ipa-icf.c (sem_variable::parse): Skip all alias variables.
---
gcc/ipa-icf.c | 3 ++-
gcc/testsuite/gcc.dg/ipa/pr65287.c | 14 ++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/gcc.dg/ipa/pr65287.c
@@ -1681,7 +1681,8 @@ sem_variable::equals (tree t1, tree t2)
sem_variable *
sem_variable::parse (varpool_node *node, bitmap_obstack *stack)
{
- if (TREE_THIS_VOLATILE (node->decl) || DECL_HARD_REGISTER (node->decl))
+ if (TREE_THIS_VOLATILE (node->decl) || DECL_HARD_REGISTER (node->decl)
+ || node->alias)
return NULL;
sem_variable *v = new sem_variable (node, 0, stack);
new file mode 100644
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+const int __new_sys_siglist[] = {};
+
+extern __typeof(__new_sys_siglist) _new_sys_siglist
+ __attribute__((alias("__new_sys_siglist")));
+extern __typeof(__new_sys_siglist) _sys_siglist
+ __attribute__((alias("__new_sys_siglist")));
+
+int main()
+{
+ return 0;
+}
--
2.1.2