]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg has been set.
authorJakub Jelinek <jakub@redhat.com>
Mon, 15 Mar 2010 17:03:02 +0000 (18:03 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 15 Mar 2010 17:03:02 +0000 (18:03 +0100)
* dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
has been set.
(based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
drap_reg has not been set.

From-SVN: r157463

gcc/ChangeLog
gcc/dwarf2out.c

index 73ec8c16a91505acb62fd5c1e25aeabd0a798958..f5b3467ac2c7e3cbabac8af78534674fd75edf82 100644 (file)
@@ -1,3 +1,10 @@
+2010-03-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
+       has been set.
+       (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
+       drap_reg has not been set.
+
 2010-03-15  Michael Matz  <matz@suse.de>
 
        PR middle-end/43300
index c76d54f39c2a9b99b70583b4eeaf63a1f92b0929..8dfe65d1fbec7cc6f384a2e4a247731cc89e7ba1 100644 (file)
@@ -2760,11 +2760,12 @@ dwarf2out_frame_debug (rtx insn, bool after_p)
        if (REG_P (n))
          {
            dw_fde_ref fde = current_fde ();
-           gcc_assert (fde
-                       && fde->drap_reg != INVALID_REGNUM
-                       && fde->vdrap_reg == INVALID_REGNUM);
-           if (REG_P (n))
-             fde->vdrap_reg = REGNO (n);
+           if (fde)
+             {
+               gcc_assert (fde->vdrap_reg == INVALID_REGNUM);
+               if (REG_P (n))
+                 fde->vdrap_reg = REGNO (n);
+             }
          }
        handled_one = true;
        break;
@@ -12726,7 +12727,6 @@ based_loc_descr (rtx reg, HOST_WIDE_INT offset,
     }
   else if (!optimize
           && fde
-          && fde->drap_reg != INVALID_REGNUM
           && (fde->drap_reg == REGNO (reg)
               || fde->vdrap_reg == REGNO (reg)))
     {