aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2004-10-25 15:47:52 +0000
committerH.J. Lu <hjl.tools@gmail.com>2004-10-25 15:47:52 +0000
commited7af9f9c152b89254e5f81fd8a77c346f0dbfdb (patch)
tree651a85645063ff36fc81546bfb92684b9867c215
parentac025970cbff5491401b95f9e6b1f9f54189d777 (diff)
downloadgdb-ed7af9f9c152b89254e5f81fd8a77c346f0dbfdb.zip
gdb-ed7af9f9c152b89254e5f81fd8a77c346f0dbfdb.tar.gz
gdb-ed7af9f9c152b89254e5f81fd8a77c346f0dbfdb.tar.bz2
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.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-ia64.c8
2 files changed, 12 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0840103..22fe267 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index b18b0ea..fb1be78 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -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: