Commit 6c36539d by Jan Hubicka Committed by Jan Hubicka

re PR lto/64043 (ICE (segfault) with LTO: in tree_check/tree.h:2758…

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
parent 2bf7560b
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> 2014-12-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/63397 PR rtl-optimization/63397
...@@ -94,6 +100,16 @@ ...@@ -94,6 +100,16 @@
2014-12-14 Jan Hubicka <hubicka@ucw.cz> 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 * ipa.c (process_references): Fix conditoinal on flag_optimize
2014-12-14 Jan Hubicka <hubicka@ucw.cz> 2014-12-14 Jan Hubicka <hubicka@ucw.cz>
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> 2014-12-15 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/64316 PR rtl-optimization/64316
......
/* { dg-lto-do run } */ /* { dg-lto-do run } */
/* { dg-lto-options { { -O0 -flto } } } */ /* { dg-lto-options { { -O0 -flto } } } */
/* { dg-extra-ld-options "-O2 -ffast-math -fuse-linker-plugin" } */
/* { dg-require-linker-plugin "" } */ /* { dg-require-linker-plugin "" } */
/* We require a linker plugin because otherwise we'd need to link /* We require a linker plugin because otherwise we'd need to link
...@@ -9,7 +8,7 @@ ...@@ -9,7 +8,7 @@
which does not have folded cabs. */ which does not have folded cabs. */
double cabs(_Complex double); double cabs(_Complex double);
double __attribute__((used)) double __attribute__((used)) __attribute__ ((optimize ("O2,fast-math")))
foo (_Complex double x, int b) foo (_Complex double x, int b)
{ {
if (b) if (b)
......
...@@ -324,7 +324,18 @@ preload_common_nodes (struct streamer_tree_cache_d *cache) ...@@ -324,7 +324,18 @@ preload_common_nodes (struct streamer_tree_cache_d *cache)
/* Skip boolean type and constants, they are frontend dependent. */ /* Skip boolean type and constants, they are frontend dependent. */
if (i != TI_BOOLEAN_TYPE if (i != TI_BOOLEAN_TYPE
&& i != TI_BOOLEAN_FALSE && 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]); record_common_node (cache, global_trees[i]);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment