summaryrefslogtreecommitdiff
path: root/gcc/stor-layout.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-16 15:46:00 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-16 15:46:00 +0000
commitb154a005864a20b0b390230815097ece419c58d8 (patch)
tree5f6b0abb4346c6ba72971b85b889ddc7574ce3db /gcc/stor-layout.c
parent969e79dd8baa13b773be8d67f678d45ec1ba247d (diff)
downloadgcc-b154a005864a20b0b390230815097ece419c58d8.tar.gz
* stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
as if size were variable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38307 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/stor-layout.c')
-rw-r--r--gcc/stor-layout.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 7fb7f2a1ddf..d909ab74d74 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,