aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-09-04 21:48:25 +0930
committerAlan Modra <amodra@gcc.gnu.org>2014-09-04 21:48:25 +0930
commit5c153812634ad41f3bb616a77a29db64b6efdb5d (patch)
tree1ac3cf72d843b3cd546297d99fab41a40ddbb0b6
parentff050c66b18d8768b57b0c99f824e9b82e569ccb (diff)
downloadgcc-5c153812634ad41f3bb616a77a29db64b6efdb5d.zip
gcc-5c153812634ad41f3bb616a77a29db64b6efdb5d.tar.gz
gcc-5c153812634ad41f3bb616a77a29db64b6efdb5d.tar.bz2
re PR debug/60655 (ICE: output_operand: invalid expression as operand)
PR debug/60655 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend can't be output. From-SVN: r214899
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 94cf799..90af3d4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-09-04 Alan Modra <amodra@gmail.com>
+
+ PR debug/60655
+ * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
+ can't be output.
+
2014-09-03 Matthew Fortune <matthew.fortune@imgtec.com>
* target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 21afc3f..23a80d8 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -12699,7 +12699,7 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
op1 = mem_loc_descriptor (XEXP (rtl, 1), mode, mem_mode,
VAR_INIT_STATUS_INITIALIZED);
if (op1 == 0)
- break;
+ return NULL;
add_loc_descr (&mem_loc_result, op1);
add_loc_descr (&mem_loc_result,
new_loc_descr (DW_OP_plus, 0, 0));