re PR debug/65771 (ICE (in loc_list_from_tree, at dwarf2out.c:14964) on arm-linux...
authorJakub Jelinek <jakub@redhat.com>
Fri, 17 Apr 2015 14:16:30 +0000 (16:16 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 17 Apr 2015 14:16:30 +0000 (16:16 +0200)
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
gcc/dwarf2out.c

index 75c3ef358b8427da89e1274c1ef2a646b3c18abd..008e36ab5ee8537312fd8b82c21c43fb93b41ead 100644 (file)
@@ -1,3 +1,9 @@
+2015-04-17  Jakub Jelinek  <jakub@redhat.com>
+
+       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  <mliska@suse.cz>
 
        * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
index b34a3ed3d05103fee98ee630d7d04fced4627542..e57012063b6c4d9783dfe1d5bccc5358e76db47f 100644 (file)
@@ -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);