New variable constructor_no_implicit, set by Chill front-end.

From-SVN: r5306
This commit is contained in:
Per Bothner 1993-09-11 13:06:48 -07:00
parent 92bd489fd6
commit cc77d4d5c4
1 changed files with 6 additions and 3 deletions

View File

@ -5105,6 +5105,9 @@ static tree constructor_pending_elts;
/* The SPELLING_DEPTH of this constructor. */
static int constructor_depth;
/* 0 if implicitly pushing constructor levels is allowed. */
int constructor_no_implicit = 0; /* 0 for C; 1 for some other languages. */
/* 1 if this constructor level was entered implicitly. */
static int constructor_implicit;
@ -6127,7 +6130,7 @@ process_init_element (value)
value = orig_value;
/* Otherwise, if we have come to a subaggregate,
and we don't have an element of its type, push into it. */
else if (value != 0
else if (value != 0 && !constructor_no_implicit
&& TYPE_MAIN_VARIANT (TREE_TYPE (value)) != fieldtype
&& (fieldcode == RECORD_TYPE || fieldcode == ARRAY_TYPE
|| fieldcode == UNION_TYPE))
@ -6184,7 +6187,7 @@ process_init_element (value)
value = orig_value;
/* Otherwise, if we have come to a subaggregate,
and we don't have an element of its type, push into it. */
else if (value != 0
else if (value != 0 && !constructor_no_implicit
&& TYPE_MAIN_VARIANT (TREE_TYPE (value)) != fieldtype
&& (fieldcode == RECORD_TYPE || fieldcode == ARRAY_TYPE
|| fieldcode == UNION_TYPE))
@ -6221,7 +6224,7 @@ process_init_element (value)
value = orig_value;
/* Otherwise, if we have come to a subaggregate,
and we don't have an element of its type, push into it. */
else if (value != 0
else if (value != 0 && !constructor_no_implicit
&& TYPE_MAIN_VARIANT (TREE_TYPE (value)) != elttype
&& (eltcode == RECORD_TYPE || eltcode == ARRAY_TYPE
|| eltcode == UNION_TYPE))