From 52bb43ceb56ed4d52e821aa003a405cda3b47ae1 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 13 Dec 2010 18:37:20 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 4 ++++ gcc/lto-streamer-out.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a539a9420f..f11527f0b2c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-12-13 Jakub Jelinek + 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 2bf83bebde4..781b2571c19 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)) -- 2.30.2