summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-30 03:51:12 +0000
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-30 03:51:12 +0000
commitbb2327a8596e13142cdade6cbf57945f3cd56e0f (patch)
tree834aa6a4528876c7d8d36898fe5367d7f65b6754
parentde10c095ac3943fce76dc0499ad2a01d1c884bc6 (diff)
downloadppe42-gcc-bb2327a8596e13142cdade6cbf57945f3cd56e0f.tar.gz
ppe42-gcc-bb2327a8596e13142cdade6cbf57945f3cd56e0f.zip
PR target/20203
* builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL. Remove convert_memory_address call duplicating that in memory_address. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97233 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/builtins.c8
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr20203.c16
4 files changed, 28 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fbd8351723a..ad34f0ea119 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-03-30 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/20203
+ * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
+ Remove convert_memory_address call duplicating that in memory_address.
+
2005-03-29 Richard Henderson <rth@redhat.com>
PR c/20519
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 23bb4298884..68b91c56772 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -979,12 +979,8 @@ expand_builtin_prefetch (tree arglist)
static rtx
get_memory_rtx (tree exp)
{
- rtx addr = expand_expr (exp, NULL_RTX, ptr_mode, EXPAND_SUM);
- rtx mem;
-
- addr = convert_memory_address (Pmode, addr);
-
- mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
+ rtx addr = expand_expr (exp, NULL_RTX, ptr_mode, EXPAND_NORMAL);
+ rtx mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
/* Get an expression we can use to find the attributes to assign to MEM.
If it is an ADDR_EXPR, use the operand. Otherwise, dereference it if
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7c7534420d7..991873cb8ab 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-03-30 Alan Modra <amodra@bigpond.net.au>
+
+ * gcc.c-torture/compile/pr20203.c: New test.
+
2005-03-26 Steven G. Kargl <kargls@comcast.net>
* gfortran.dg/promotion.f90: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr20203.c b/gcc/testsuite/gcc.c-torture/compile/pr20203.c
new file mode 100644
index 00000000000..1fb2a045d55
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr20203.c
@@ -0,0 +1,16 @@
+void *memset (void *, int, unsigned long);
+
+typedef struct bfd_section
+{
+ unsigned long size;
+ unsigned char *contents;
+} asection;
+
+int
+_bfd_mips_elf_finish_dynamic_sections (asection *s)
+{
+ long long dummy_offset;
+ dummy_offset = s->size - 16;
+ memset (s->contents + dummy_offset, 0, 16);
+ return 1;
+}
OpenPOWER on IntegriCloud