summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/except.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 345454492b5..e60ae19aa28 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Thu Apr 15 20:46:57 1999 Donn Terry (donn@interix.com)
+ * except.c (start_catch_hadler): Be sure rtime_address is Pmode
+ if POINTERS_EXTEND_UNSIGNED.
+
* except.c (expand_eh_return): Force pointers to proper mode if
POINTERS_EXTEND_UNSIGNED.
diff --git a/gcc/except.c b/gcc/except.c
index 21d5b8ab9fd..fe139fd85c4 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1760,6 +1760,9 @@ start_catch_handler (rtime)
catchstack.top->entry->false_label = gen_exception_label ();
rtime_address = expand_expr (rtime, NULL_RTX, Pmode, EXPAND_INITIALIZER);
+#ifdef POINTERS_EXTEND_UNSIGNED
+ rtime_address = convert_memory_address (Pmode, rtime_address);
+#endif
rtime_address = force_reg (Pmode, rtime_address);
/* Now issue the call, and branch around handler if needed */