diff options
author | Jan Hubicka <jh@suse.cz> | 2013-05-15 10:09:26 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-05-15 08:09:26 +0000 |
commit | 2d6e460353fd7ad3160faaa96a0174042c6c28f1 (patch) | |
tree | b5bf9542ac17e96b9f1eab08c77364e8adba45c3 /gcc/testsuite | |
parent | 83f44b399712cc22564013b42bb6976ef60895c4 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/torture/20070621-1.C | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c | 29 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c | 7 |
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(); +} |