aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-12-15 23:35:20 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2014-12-15 22:35:20 +0000
commit6c36539dcffceaff517f6682c08ea236a4c77e14 (patch)
tree6d7e7596b4e5e5b1571f88c420ce3de5d2a54ec6 /gcc
parent2bf7560bd3757dbd0d7ffbe8e61b3eb847cfc5f0 (diff)
downloadgcc-6c36539dcffceaff517f6682c08ea236a4c77e14.zip
gcc-6c36539dcffceaff517f6682c08ea236a4c77e14.tar.gz
gcc-6c36539dcffceaff517f6682c08ea236a4c77e14.tar.bz2
re PR lto/64043 (ICE (segfault) with LTO: in tree_check/tree.h:2758 get_binfo_at_offset/tree.c:11914)
PR lto/64043 * gcc.dg/lto/20110201-1_0.c: New testcase. * tree-streamer.c (preload_common_nodes): Skip preloading of main_identifier_node, pid_type and optimization/option nodes. From-SVN: r218767
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog16
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/lto/20110201-1_0.c3
-rw-r--r--gcc/tree-streamer.c13
4 files changed, 34 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2929972..a802218 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-12-15 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/64043
+ * tree-streamer.c (preload_common_nodes): Skip preloading
+ of main_identifier_node, pid_type and optimization/option nodes.
+
2014-12-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/63397
@@ -94,6 +100,16 @@
2014-12-14 Jan Hubicka <hubicka@ucw.cz>
+ PR ipa/61602
+ * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Return bool.
+ * ipa.c (set_writeonly_bit): Track if reference was removed.
+ (ipa_discover_readonly_nonaddressable_vars): Return true if any
+ references was removed.
+ * ipa-reference.c (propagate): Return TODO_remove_functions if
+ reference was removed.
+
+2014-12-14 Jan Hubicka <hubicka@ucw.cz>
+
* ipa.c (process_references): Fix conditoinal on flag_optimize
2014-12-14 Jan Hubicka <hubicka@ucw.cz>
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2299c78..c4366d5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-12-15 Jan Hubicka <hubicka@ucw.cz>
+
+ PR lto/64043
+ * gcc.dg/lto/20110201-1_0.c: New testcase.
+
2014-12-15 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/64316
diff --git a/gcc/testsuite/gcc.dg/lto/20110201-1_0.c b/gcc/testsuite/gcc.dg/lto/20110201-1_0.c
index a006649..5073a50 100644
--- a/gcc/testsuite/gcc.dg/lto/20110201-1_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20110201-1_0.c
@@ -1,6 +1,5 @@
/* { dg-lto-do run } */
/* { dg-lto-options { { -O0 -flto } } } */
-/* { dg-extra-ld-options "-O2 -ffast-math -fuse-linker-plugin" } */
/* { dg-require-linker-plugin "" } */
/* We require a linker plugin because otherwise we'd need to link
@@ -9,7 +8,7 @@
which does not have folded cabs. */
double cabs(_Complex double);
-double __attribute__((used))
+double __attribute__((used)) __attribute__ ((optimize ("O2,fast-math")))
foo (_Complex double x, int b)
{
if (b)
diff --git a/gcc/tree-streamer.c b/gcc/tree-streamer.c
index 102cb22..a4502bd 100644
--- a/gcc/tree-streamer.c
+++ b/gcc/tree-streamer.c
@@ -324,7 +324,18 @@ preload_common_nodes (struct streamer_tree_cache_d *cache)
/* Skip boolean type and constants, they are frontend dependent. */
if (i != TI_BOOLEAN_TYPE
&& i != TI_BOOLEAN_FALSE
- && i != TI_BOOLEAN_TRUE)
+ && i != TI_BOOLEAN_TRUE
+ /* MAIN_IDENTIFIER is not always initialized by Fortran FE. */
+ && i != TI_MAIN_IDENTIFIER
+ /* PID_TYPE is initialized only by C family front-ends. */
+ && i != TI_PID_TYPE
+ /* Skip optimization and target option nodes; they depend on flags. */
+ && i != TI_OPTIMIZATION_DEFAULT
+ && i != TI_OPTIMIZATION_CURRENT
+ && i != TI_TARGET_OPTION_DEFAULT
+ && i != TI_TARGET_OPTION_CURRENT
+ && i != TI_CURRENT_TARGET_PRAGMA
+ && i != TI_CURRENT_OPTIMIZE_PRAGMA)
record_common_node (cache, global_trees[i]);
}