aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-05-10 16:31:17 +0000
committerRichard Stallman <rms@gnu.org>1992-05-10 16:31:17 +0000
commit2207e2952c49585a923dadf2d805c79b9252d143 (patch)
tree1805edb766f1f9d677ab03c881bf2e1ac1c48ea4 /gcc
parent7bb0943f9cd7d9c7f056671ec8331b0ea7e98c94 (diff)
downloadgcc-2207e2952c49585a923dadf2d805c79b9252d143.zip
gcc-2207e2952c49585a923dadf2d805c79b9252d143.tar.gz
gcc-2207e2952c49585a923dadf2d805c79b9252d143.tar.bz2
*** empty log message ***
From-SVN: r954
Diffstat (limited to 'gcc')
-rw-r--r--gcc/stmt.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index a1a2267..e55b2bd 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -2799,6 +2799,13 @@ expand_decl (decl)
/* Reference the variable indirect through that rtx. */
DECL_RTL (decl) = gen_rtx (MEM, DECL_MODE (decl), address);
+ /* If this is a memory ref that contains aggregate components,
+ mark it as such for cse and loop optimize. */
+ MEM_IN_STRUCT_P (DECL_RTL (decl))
+ = (TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE
+ || TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE
+ || TREE_CODE (TREE_TYPE (decl)) == UNION_TYPE);
+
/* Indicate the alignment we actually gave this variable. */
#ifdef STACK_BOUNDARY
DECL_ALIGN (decl) = STACK_BOUNDARY;