diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/lto-streamer-out.c | 5 |
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)) |