aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh
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 /gcc/config/sh
parentf2580bd8c08c67a0ccfd85ed75c36b3b25aa566a (diff)
downloadgcc-10575b5dc4edd7e12b480ea0e1ce1c6de8be7d5c.zip
gcc-10575b5dc4edd7e12b480ea0e1ce1c6de8be7d5c.tar.gz
gcc-10575b5dc4edd7e12b480ea0e1ce1c6de8be7d5c.tar.bz2
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
Diffstat (limited to 'gcc/config/sh')
-rw-r--r--gcc/config/sh/sh.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index abd579a..e186a10 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;