]> gcc.gnu.org Git - gcc.git/commitdiff
(output_init_element): Call default_conversion here.
authorRichard Stallman <rms@gnu.org>
Fri, 6 Aug 1993 07:08:12 +0000 (07:08 +0000)
committerRichard Stallman <rms@gnu.org>
Fri, 6 Aug 1993 07:08:12 +0000 (07:08 +0000)
Set constructor_erroneous, etc., here.
(process_init_element): Not here.

From-SVN: r5086

gcc/c-typeck.c

index a08b72317e8abab7f812b93c215e396ef712fcf6..ec9d44e2ac7871fa05844982d7f381531f3dd4d8 100644 (file)
@@ -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",
This page took 0.063432 seconds and 5 git commands to generate.