diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-04-14 19:53:34 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-04-14 17:53:34 +0000 |
commit | 006202e8c05177e883ff174d56834cafc43c8165 (patch) | |
tree | cb3a94353c53e0c5edcafb7984f173abbb034ca3 /gcc | |
parent | e0a81db1258dfe19abb0b20c6169a4da14d30c3a (diff) | |
download | gcc-006202e8c05177e883ff174d56834cafc43c8165.zip gcc-006202e8c05177e883ff174d56834cafc43c8165.tar.gz gcc-006202e8c05177e883ff174d56834cafc43c8165.tar.bz2 |
re PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)
PR lto/60820
* varpool.c (varpool_remove_node): Do not alter decls when streaming.
From-SVN: r209389
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/varpool.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 91bb92f..98e3710 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-04-14 Jan Hubicka <hubicka@ucw.cz> + + PR lto/60820 + * varpool.c (varpool_remove_node): Do not alter decls when streaming. + 2014-04-14 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.c (examine_argument): Return bool. Return true if diff --git a/gcc/varpool.c b/gcc/varpool.c index acb5221..b5493ab 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -166,7 +166,9 @@ varpool_remove_node (varpool_node *node) /* Because we remove references from external functions before final compilation, we may end up removing useful constructors. FIXME: We probably want to trace boundaries better. */ - if ((init = ctor_for_folding (node->decl)) == error_mark_node) + if (cgraph_state == CGRAPH_LTO_STREAMING) + ; + else if ((init = ctor_for_folding (node->decl)) == error_mark_node) varpool_remove_initializer (node); else DECL_INITIAL (node->decl) = init; |