aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2013-05-15 10:09:26 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2013-05-15 08:09:26 +0000
commit2d6e460353fd7ad3160faaa96a0174042c6c28f1 (patch)
treeb5bf9542ac17e96b9f1eab08c77364e8adba45c3 /gcc/testsuite
parent83f44b399712cc22564013b42bb6976ef60895c4 (diff)
downloadgcc-2d6e460353fd7ad3160faaa96a0174042c6c28f1.zip
gcc-2d6e460353fd7ad3160faaa96a0174042c6c28f1.tar.gz
gcc-2d6e460353fd7ad3160faaa96a0174042c6c28f1.tar.bz2
re PR c++/57038 (Latest libreoffice compilation fails with enabled LTO)
PR lto/57038 PR lto/47375 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol; weakrefs are not external. (lto_symtab_merge_decls): Fix thinko when dealing with non-lto_symtab decls. (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p. (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p. * varpool.c (dump_varpool_node): Dump more flags. * lto-partition.c (get_symbol_class): Fix weakrefs. (lto_balanced_map): Fix weakrefs. (privatize_symbol_name): Remove unnecesary label. (rename_statics): Handle weakrefs as statics. * gcc.dg/lto/attr-weakref-1_0.c: New testcase. * gcc.dg/lto/attr-weakref-1_1.c: New testcase. * gcc.dg/lto/attr-weakref-1_2.c: New testcase. From-SVN: r198917
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/torture/20070621-1.C1
-rw-r--r--gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c29
-rw-r--r--gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c7
-rw-r--r--gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c7
5 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d405989..383dc9d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2013-05-15 Jan Hubicka <jh@suse.cz>
+
+ * gcc.dg/lto/attr-weakref-1_0.c: New testcase.
+ * gcc.dg/lto/attr-weakref-1_1.c: New testcase.
+ * gcc.dg/lto/attr-weakref-1_2.c: New testcase.
+
2013-05-14 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/torture/alias-1.c: Add dg-require-effective-target
diff --git a/gcc/testsuite/g++.dg/torture/20070621-1.C b/gcc/testsuite/g++.dg/torture/20070621-1.C
index 185314a..15d1ac7 100644
--- a/gcc/testsuite/g++.dg/torture/20070621-1.C
+++ b/gcc/testsuite/g++.dg/torture/20070621-1.C
@@ -1,3 +1,4 @@
+// { dg-do compile }
/* Reduced from libstdc++-v3/testsuite/25_algorithms/equal/1.cc
1.2.ii: In function 'void test1()':
diff --git a/gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c b/gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c
new file mode 100644
index 0000000..1e02f68
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c
@@ -0,0 +1,29 @@
+/* { dg-lto-do run } */
+int first = 0;
+void abort (void);
+int second = 0;
+void callmealias (void)
+{
+ if (!first || !second)
+ abort ();
+}
+void callmefirst (void)
+{
+ if (first)
+ abort();
+ first = 1;
+}
+void callmesecond (void)
+{
+ if (!first)
+ abort();
+ if (second)
+ abort();
+ second = 1;
+}
+main()
+{
+ c();
+ b();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c b/gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c
new file mode 100644
index 0000000..67e6e1c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c
@@ -0,0 +1,7 @@
+extern void callmesecond();
+static void callmealias() __attribute__((weakref ("callmesecond")));
+
+b()
+{
+ callmealias();
+}
diff --git a/gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c b/gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c
new file mode 100644
index 0000000..6f382f6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c
@@ -0,0 +1,7 @@
+extern void callmefirst();
+static void callmealias() __attribute__((weakref ("callmefirst")));
+
+c()
+{
+ callmealias();
+}