summaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-19 23:40:37 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-11-19 23:40:37 +0000
commit1b82e8583b1e092e52d07a9a8b8abbfecc16e99f (patch)
treeb0963851524845509cecfbe1ac8dbb68d8f147ff /gcc/tree.c
parent1a361d3efefa04669e1fee3502d24e39b7b14e71 (diff)
downloadgcc-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.c4
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))