diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2010-06-07 22:15:47 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2010-06-07 22:15:47 +0000 |
commit | 10575b5dc4edd7e12b480ea0e1ce1c6de8be7d5c (patch) | |
tree | f60785d0c9f35f880f450d9fe2ef48ce2f290648 | |
parent | f2580bd8c08c67a0ccfd85ed75c36b3b25aa566a (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 6 |
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; |