From 103b83eaf0e63701d5b84704723230e1d5c36a78 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Sun, 3 Oct 2004 22:50:18 +0000 Subject: [PATCH] expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode as valid modes to expand address expressions. * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode as valid modes to expand address expressions. From-SVN: r88464 --- gcc/ChangeLog | 5 +++++ gcc/expr.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c934ea51567..4744f92316c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-10-03 Ulrich Weigand + + * 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 * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c, diff --git a/gcc/expr.c b/gcc/expr.c index 5db2c280038..2baea73cecb 100644 --- a/gcc/expr.c +++ b/gcc/expr.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, -- 2.30.2