aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2010-12-13 18:37:20 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2010-12-13 18:37:20 +0100
commit52bb43ceb56ed4d52e821aa003a405cda3b47ae1 (patch)
tree44fe189d6b1a4fccd8022270d487b5a3b06899e3 /gcc
parentc171af0e0080310967bdebd27933488ff6c93038 (diff)
downloadgcc-52bb43ceb56ed4d52e821aa003a405cda3b47ae1.zip
gcc-52bb43ceb56ed4d52e821aa003a405cda3b47ae1.tar.gz
gcc-52bb43ceb56ed4d52e821aa003a405cda3b47ae1.tar.bz2
re PR lto/46879 (ICE: in separate_decls_in_region_debug_bind, at tree-parloops.c:778 with -flto -ftree-parallelize-loops -gdwarf-3)
PR lto/46879 * lto-streamer-out.c (output_gimple_stmt): Never replace first GIMPLE_DEBUG argument with MEM_REF. From-SVN: r167755
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/lto-streamer-out.c5
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9a539a9..f11527f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2010-12-13 Jakub Jelinek <jakub@redhat.com>
+ PR lto/46879
+ * lto-streamer-out.c (output_gimple_stmt): Never replace first
+ GIMPLE_DEBUG argument with MEM_REF.
+
PR debug/46867
* var-tracking.c (emitted_notes, string_pointer_flags): Removed.
(emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 2bf83be..781b257 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1759,8 +1759,9 @@ output_gimple_stmt (struct output_block *ob, gimple stmt)
tree op = gimple_op (stmt, i);
/* Wrap all uses of non-automatic variables inside MEM_REFs
so that we do not have to deal with type mismatches on
- merged symbols during IL read in. */
- if (op)
+ merged symbols during IL read in. The first operand
+ of GIMPLE_DEBUG must be a decl, not MEM_REF, though. */
+ if (op && (i || !is_gimple_debug (stmt)))
{
tree *basep = &op;
while (handled_component_p (*basep))