diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c934ea5..4744f92 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-10-03 Ulrich Weigand <uweigand@de.ibm.com> + + * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode + as valid modes to expand address expressions. + 2004-10-03 Joseph S. Myers <jsm@polyomino.org.uk> * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c, @@ -6201,7 +6201,7 @@ expand_expr_addr_expr (tree exp, rtx target, enum machine_mode tmode, /* We can get called with some Weird Things if the user does silliness like "(short) &a". In that case, convert_memory_address won't do the right thing, so ignore the given target mode. */ - if (!targetm.valid_pointer_mode (tmode)) + if (tmode != Pmode && tmode != ptr_mode) tmode = Pmode; result = expand_expr_addr_expr_1 (TREE_OPERAND (exp, 0), target, |