OSDN Git Service

2004-10-25 David Mosberger-Tang <davidm@hpl.hp.com>
authorhjl <hjl>
Mon, 25 Oct 2004 15:47:51 +0000 (15:47 +0000)
committerhjl <hjl>
Mon, 25 Oct 2004 15:47:51 +0000 (15:47 +0000)
* config/tc-ia64.c (fixup_unw_records): Don't let the "t" value
in an epilogue directive go negative.

gas/ChangeLog
gas/config/tc-ia64.c

index 0840103..22fe267 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-25  David Mosberger-Tang  <davidm@hpl.hp.com>
+
+       * config/tc-ia64.c (fixup_unw_records): Don't let the "t" value 
+       in an epilogue directive go negative.
+
 2004-10-25  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR 474
index b18b0ea..fb1be78 100644 (file)
@@ -2747,7 +2747,13 @@ fixup_unw_records (list, before_relax)
            break;
          }
        case epilogue:
-         ptr->r.record.b.t = rlen - 1 - t;
+         if (t < rlen)
+           ptr->r.record.b.t = rlen - 1 - t;
+         else
+           /* This happens when a memory-stack-less procedure uses a
+              ".restore sp" directive at the end of a region to pop
+              the frame state.  */
+           ptr->r.record.b.t = 0;
          break;
 
        case mem_stack_f: