From d3ab975391c98188899c1519703af44995d47c53 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Fri, 6 Aug 1993 07:08:12 +0000 Subject: [PATCH] (output_init_element): Call default_conversion here. Set constructor_erroneous, etc., here. (process_init_element): Not here. From-SVN: r5086 --- gcc/c-typeck.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index a08b72317e8..ec9d44e2ac7 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -5734,6 +5734,18 @@ output_init_element (value, type, field, pending) { int duplicate = 0; + if (TREE_CODE (TREE_TYPE (value)) == FUNCTION_TYPE + || (TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE + && comptypes (TREE_TYPE (value), type))) + value = default_conversion (value); + + if (value == error_mark_node) + constructor_erroneous = 1; + else if (!TREE_CONSTANT (value)) + constructor_constant = 0; + else if (initializer_constant_valid_p (value, TREE_TYPE (value)) == 0) + constructor_simple = 0; + if (require_constant_value && ! TREE_CONSTANT (value)) { error_init ("initializer element%s is not constant", @@ -6026,18 +6038,6 @@ process_init_element (value) return; } - if (value != 0) - value = default_conversion (value); - - if (value == 0) - ; - else if (value == error_mark_node) - constructor_erroneous = 1; - else if (!TREE_CONSTANT (value)) - constructor_constant = 0; - else if (initializer_constant_valid_p (value, TREE_TYPE (value)) == 0) - constructor_simple = 0; - if (constructor_stack->replacement_value != 0) { error_init ("excess elements in struct initializer%s", -- 2.30.2