decl.c (java_init_decl_processing): Setup va_list_type_node.
authorKai Tietz <kai.tietz@onevision.com>
Fri, 7 Jan 2011 13:50:15 +0000 (13:50 +0000)
committerKai Tietz <ktietz@gcc.gnu.org>
Fri, 7 Jan 2011 13:50:15 +0000 (14:50 +0100)
2011-01-07  Kai Tietz  <kai.tietz@onevision.com>

        * decl.c (java_init_decl_processing): Setup va_list_type_node.

From-SVN: r168569

gcc/java/ChangeLog
gcc/java/decl.c

index b612577406165c26959d3344a4edcea1c5fd9832..0f27ff76a4e20a022ffddeb6167f6ee7043c81a6 100644 (file)
@@ -1,3 +1,7 @@
+2011-01-07  Kai Tietz  <kai.tietz@onevision.com>
+
+       * decl.c (java_init_decl_processing): Setup va_list_type_node.
+
 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
 
        * jcf-dump.c (version): Update copyright notice dates.
index a17b826696b165ec094b1804788d8ef1c0b31ba8..c91ddbb9b57f52e09cabc18de7ce8a83017ac129 100644 (file)
@@ -1154,6 +1154,19 @@ java_init_decl_processing (void)
     = add_builtin_function ("_Jv_remJ", t,
                            0, NOT_BUILT_IN, NULL, NULL_TREE);
 
+  /* Initialize va_list_type_node.  */
+  t = targetm.build_builtin_va_list ();
+
+  /* Many back-ends define record types without setting TYPE_NAME.
+     If we copied the record type here, we'd keep the original
+     record type without a name.  This breaks name mangling.  So,
+     don't copy record types and let c_common_nodes_and_builtins()
+     declare the type to be __builtin_va_list.  */
+  if (TREE_CODE (t) != RECORD_TYPE)
+    t = build_variant_type_copy (t);
+
+  va_list_type_node = t;
+
   initialize_builtins ();
 
   soft_fmod_node = built_in_decls[BUILT_IN_FMOD];