aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/tree-sra.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8569982..9d04f8b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types.
+
2004-12-22 Mark Mitchell <mark@codesourcery.com>
* Makefile.in (install-common): Remove special-case code for when
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 04733e3..1c1739b 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -184,7 +184,8 @@ type_can_be_decomposed_p (tree type)
return false;
/* The type must have a definite nonzero size. */
- if (TYPE_SIZE (type) == NULL || integer_zerop (TYPE_SIZE (type)))
+ if (TYPE_SIZE (type) == NULL || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST
+ || integer_zerop (TYPE_SIZE (type)))
goto fail;
/* The type must be a non-union aggregate. */