aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-12-16 15:46:00 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-12-16 10:46:00 -0500
commit67011d8196bb6cd0da469cfe0096aba5aaf5b93e (patch)
tree5f6b0abb4346c6ba72971b85b889ddc7574ce3db
parent23cb454af9f1009e43b1051898d0f84adff4eed5 (diff)
downloadgcc-67011d8196bb6cd0da469cfe0096aba5aaf5b93e.zip
gcc-67011d8196bb6cd0da469cfe0096aba5aaf5b93e.tar.gz
gcc-67011d8196bb6cd0da469cfe0096aba5aaf5b93e.tar.bz2
stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT as if size were variable.
* stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT as if size were variable. From-SVN: r38307
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/stor-layout.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a5637a..3bf8528 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Sat Dec 16 10:41:11 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
+ as if size were variable.
+
* expmed.c (expand_mult): Write REG_EQUAL note with proper mode.
2000-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 7fb7f2a..d909ab7 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -893,7 +893,8 @@ place_field (rli, field)
is printed in finish_struct. */
if (DECL_SIZE (field) == 0)
/* Do nothing. */;
- else if (! TREE_CONSTANT (DECL_SIZE_UNIT (field)))
+ else if (TREE_CODE (DECL_SIZE_UNIT (field)) != INTEGER_CST
+ || TREE_CONSTANT_OVERFLOW (DECL_SIZE_UNIT (field)))
{
rli->offset
= size_binop (PLUS_EXPR, rli->offset,