diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-19 23:40:37 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-19 23:40:37 +0000 |
commit | 1b82e8583b1e092e52d07a9a8b8abbfecc16e99f (patch) | |
tree | b0963851524845509cecfbe1ac8dbb68d8f147ff /gcc/tree.c | |
parent | 1a361d3efefa04669e1fee3502d24e39b7b14e71 (diff) | |
download | gcc-1b82e8583b1e092e52d07a9a8b8abbfecc16e99f.tar.gz |
* c-decl.c (grokdeclarator): Support flexible array members.
Use open-ended ranges for these and zero-length arrays.
* c-typeck.c (push_init_level): Validate the context of
initialization of a zero-length array.
* tree.c (int_fits_type_p): Be prepared for missing bounds.
* varasm.c (array_size_for_constructor): New.
(output_constructor): Use it for arrays of unspecified length.
* extend.texi (Zero Length): Mention C99 flexible array members.
Document initialization in a top-level struct as valid.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37576 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r-- | gcc/tree.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree.c b/gcc/tree.c index 7652052662e..7910449bd34 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -4186,7 +4186,9 @@ int_fits_type_p (c, type) { /* If the bounds of the type are integers, we can check ourselves. Otherwise,. use force_fit_type, which checks against the precision. */ - if (TREE_CODE (TYPE_MAX_VALUE (type)) == INTEGER_CST + if (TYPE_MAX_VALUE (type) != NULL_TREE + && TYPE_MIN_VALUE (type) != NULL_TREE + && TREE_CODE (TYPE_MAX_VALUE (type)) == INTEGER_CST && TREE_CODE (TYPE_MIN_VALUE (type)) == INTEGER_CST) { if (TREE_UNSIGNED (type)) |