aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-11-03 15:33:45 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-11-03 10:33:45 -0500
commit343fb4120866d610c7e233f19dfcf2b3322774ca (patch)
treea54d651a7abdfb3792acc32dcad3d2b1c8a9b462 /gcc
parent13ba36b478bfdfe2881bdc4a83c2caf2fd26fbd2 (diff)
downloadgcc-343fb4120866d610c7e233f19dfcf2b3322774ca.zip
gcc-343fb4120866d610c7e233f19dfcf2b3322774ca.tar.gz
gcc-343fb4120866d610c7e233f19dfcf2b3322774ca.tar.bz2
builtins.c (get_memory_rtx): Properly set MEM alias set and attributes.
* builtins.c (get_memory_rtx): Properly set MEM alias set and attributes. From-SVN: r46732
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/builtins.c16
2 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c7349b3..de15b86 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sat Nov 3 10:37:56 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * builtins.c (get_memory_rtx): Properly set MEM alias set and
+ attributes.
+
2001-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
* doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi:
diff --git a/gcc/builtins.c b/gcc/builtins.c
index d1eeda9..ca7eb66 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -731,7 +731,6 @@ get_memory_rtx (exp)
#endif
mem = gen_rtx_MEM (BLKmode, memory_address (BLKmode, addr));
- set_mem_attributes (mem, exp, 0);
/* 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
@@ -742,14 +741,17 @@ get_memory_rtx (exp)
exp = TREE_OPERAND (exp, 0);
if (TREE_CODE (exp) == ADDR_EXPR)
- exp = TREE_OPERAND (exp, 0);
+ {
+ exp = TREE_OPERAND (exp, 0);
+ set_mem_attributes (mem, exp, 0);
+ }
else if (POINTER_TYPE_P (TREE_TYPE (exp)))
- exp = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (exp)), exp);
- else
- return mem;
+ {
+ exp = build1 (INDIRECT_REF, TREE_TYPE (TREE_TYPE (exp)), exp);
+ /* memcpy, memset and other builtin stringops can alias with anything. */
+ set_mem_alias_set (mem, 0);
+ }
- /* memcpy, memset and other builtin stringops can alias with anything. */
- set_mem_alias_set (mem, 0);
return mem;
}