aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2011-01-07 13:50:15 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2011-01-07 14:50:15 +0100
commitd6bcbb40dd475624be371de4d86e9054a5934fc9 (patch)
treefe84a54138079a34be1a615b999a57a4f6b7b2f5 /gcc/java
parent2ac6bb044fa4c6088c7a3b7f5082ac5438adb18c (diff)
downloadgcc-d6bcbb40dd475624be371de4d86e9054a5934fc9.zip
gcc-d6bcbb40dd475624be371de4d86e9054a5934fc9.tar.gz
gcc-d6bcbb40dd475624be371de4d86e9054a5934fc9.tar.bz2
decl.c (java_init_decl_processing): Setup va_list_type_node.
2011-01-07 Kai Tietz <kai.tietz@onevision.com> * decl.c (java_init_decl_processing): Setup va_list_type_node. From-SVN: r168569
Diffstat (limited to 'gcc/java')
-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];