summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2010-06-07 22:15:47 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2010-06-07 22:15:47 +0000
commit10575b5dc4edd7e12b480ea0e1ce1c6de8be7d5c (patch)
treef60785d0c9f35f880f450d9fe2ef48ce2f290648
parentf2580bd8c08c67a0ccfd85ed75c36b3b25aa566a (diff)
downloadgcc-10575b5dc4edd7e12b480ea0e1ce1c6de8be7d5c.tar.gz
sh.c (sh_build_builtin_va_list): Set tree type name of RECORD.
* config/sh/sh.c (sh_build_builtin_va_list): Set tree type name of RECORD. From-SVN: r160409
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2037e82dca2..6268186dbd6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
+ name of RECORD.
+
2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* doc/sourcebuild.texi (Effective-Target Keywords, Other
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index abd579ae1a7..e186a108fb4 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -7636,13 +7636,15 @@ static tree
sh_build_builtin_va_list (void)
{
tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
- tree record;
+ tree record, type_decl;
if (TARGET_SH5 || (! TARGET_SH2E && ! TARGET_SH4)
|| TARGET_HITACHI || sh_cfun_attr_renesas_p ())
return ptr_type_node;
record = (*lang_hooks.types.make_type) (RECORD_TYPE);
+ type_decl = build_decl (BUILTINS_LOCATION,
+ TYPE_DECL, get_identifier ("__va_list_tag"), record);
f_next_o = build_decl (BUILTINS_LOCATION,
FIELD_DECL, get_identifier ("__va_next_o"),
@@ -7668,6 +7670,8 @@ sh_build_builtin_va_list (void)
DECL_FIELD_CONTEXT (f_next_fp_limit) = record;
DECL_FIELD_CONTEXT (f_next_stack) = record;
+ TREE_CHAIN (record) = type_decl;
+ TYPE_NAME (record) = type_decl;
TYPE_FIELDS (record) = f_next_o;
TREE_CHAIN (f_next_o) = f_next_o_limit;
TREE_CHAIN (f_next_o_limit) = f_next_fp;