aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/java/ChangeLog4
-rw-r--r--gcc/java/decl.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index b612577..0f27ff7 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -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.
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index a17b826..c91ddbb 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -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];