From aeebf48a7083e5b64b4ddd9d9fe820dd686f419b Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 17 Apr 2015 16:16:30 +0200 Subject: [PATCH] re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux-gnueabihf) PR debug/65771 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to trying mem_loc_descriptor on XEXP (rtl, 0). From-SVN: r222181 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 75c3ef358b8..008e36ab5ee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-04-17 Jakub Jelinek + + PR debug/65771 + * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to + trying mem_loc_descriptor on XEXP (rtl, 0). + 2015-04-17 Martin Liska * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs): diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index b34a3ed3d05..e57012063b6 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -12799,7 +12799,12 @@ mem_loc_descriptor (rtx rtl, machine_mode mode, } if (!const_ok_for_output (rtl)) - break; + { + if (GET_CODE (rtl) == CONST) + mem_loc_result = mem_loc_descriptor (XEXP (rtl, 0), mode, mem_mode, + initialized); + break; + } symref: mem_loc_result = new_addr_loc_descr (rtl, dtprel_false); -- 2.30.2