aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 386fd8a..531d4fa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
+ * config/sh/sh.c (sh_media_init_builtins): Call
+ build_function_type_list instead of build_function_type.
+
+2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
+
* config/sparc/sparc.c (sparc_file_end): Call
build_function_type_list instead of build_function_type.
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 6d0e213..d799782 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -11231,6 +11231,7 @@ sh_media_init_builtins (void)
else
{
int has_result = signature_args[signature][0] != 0;
+ tree args[3];
if ((signature_args[signature][1] & 8)
&& (((signature_args[signature][1] & 1) && TARGET_SHMEDIA32)
@@ -11239,7 +11240,8 @@ sh_media_init_builtins (void)
if (! TARGET_FPU_ANY
&& FLOAT_MODE_P (insn_data[d->icode].operand[0].mode))
continue;
- type = void_list_node;
+ for (i = 0; i < (int) ARRAY_SIZE (args); i++)
+ args[i] = NULL_TREE;
for (i = 3; ; i--)
{
int arg = signature_args[signature][i];
@@ -11257,9 +11259,10 @@ sh_media_init_builtins (void)
arg_type = void_type_node;
if (i == 0)
break;
- type = tree_cons (NULL_TREE, arg_type, type);
+ args[i-1] = arg_type;
}
- type = build_function_type (arg_type, type);
+ type = build_function_type_list (arg_type, args[0], args[1],
+ args[2], NULL_TREE);
if (signature < SH_BLTIN_NUM_SHARED_SIGNATURES)
shared[signature] = type;
}