aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/explow.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d573ed0..06fa1f6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Nov 8 18:00:55 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * explow.c (convert_memory_address, case SUBREG): Only return
+ inner object if SUBREG_PROMOTED_VAR_P or known to be pointer.
+
2001-11-08 Richard Henderson <rth@redhat.com>
* Makefile.in (GCC_FOR_TARGET): Add build_tooldir/sys-include.
diff --git a/gcc/explow.c b/gcc/explow.c
index 940a839..874713f 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -363,6 +363,7 @@ convert_memory_address (to_mode, x)
case SUBREG:
if (POINTERS_EXTEND_UNSIGNED >= 0
+ && (SUBREG_PROMOTED_VAR_P (x) || REG_POINTER (SUBREG_REG (x)))
&& GET_MODE (SUBREG_REG (x)) == to_mode)
return SUBREG_REG (x);
break;