aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-04-30 05:59:06 +0000
committerJim Wilson <wilson@gcc.gnu.org>2004-04-29 22:59:06 -0700
commit150e407ad0d90b214e008bb828016ab4f3579e84 (patch)
tree14f3c2a29a8ee6dce28bb943069f76dcab5e9415 /gcc
parent6862f97f4535814a0ceba6134f86b869a6377a1d (diff)
downloadgcc-150e407ad0d90b214e008bb828016ab4f3579e84.zip
gcc-150e407ad0d90b214e008bb828016ab4f3579e84.tar.gz
gcc-150e407ad0d90b214e008bb828016ab4f3579e84.tar.bz2
Patch from Nick Clifton.
Bug 14093 * config/sh/sh-protos.h (sh_promote_prototypes): Declare. * config/sh/sh.c (sh_promote_prototypes): Remove declaration. Delete static from definition. * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call. From-SVN: r81325
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/sh/sh-protos.h1
-rw-r--r--gcc/config/sh/sh.c3
-rw-r--r--gcc/config/sh/sh.h1
4 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 22f2d77..080affc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2004-04-29 Nick Clifton <nickc@redhat.com>
+
+ Bug 14093
+ * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
+ * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
+ Delete static from definition.
+ * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
+
2004-04-30 Uros Bizjak <uros@kss-loka.si>
* reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
diff --git a/gcc/config/sh/sh-protos.h b/gcc/config/sh/sh-protos.h
index b00ebde..082d794 100644
--- a/gcc/config/sh/sh-protos.h
+++ b/gcc/config/sh/sh-protos.h
@@ -141,5 +141,6 @@ extern rtx sh_function_arg (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
extern void sh_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
extern int sh_pass_in_reg_p (CUMULATIVE_ARGS *, enum machine_mode, tree);
extern const char *sh_pch_valid_p (const void *data_p, size_t sz);
+extern bool sh_promote_prototypes (tree);
#endif /* ! GCC_SH_PROTOS_H */
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index a790c43..66a7da4 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -272,7 +272,6 @@ struct save_schedule_s;
static struct save_entry_s *sh5_schedule_saves (HARD_REG_SET *,
struct save_schedule_s *, int);
-static bool sh_promote_prototypes (tree);
static rtx sh_struct_value_rtx (tree, int);
static bool sh_return_in_memory (tree, tree);
static rtx sh_builtin_saveregs (void);
@@ -6352,7 +6351,7 @@ sh_va_arg (tree valist, tree type)
return result;
}
-static bool
+bool
sh_promote_prototypes (tree type)
{
if (TARGET_HITACHI)
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 6bdfefe..32cbb2c 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -1644,6 +1644,7 @@ extern enum reg_class reg_class_from_letter[];
|| TREE_CODE (VALTYPE) == CHAR_TYPE \
|| TREE_CODE (VALTYPE) == REAL_TYPE \
|| TREE_CODE (VALTYPE) == OFFSET_TYPE)) \
+ && sh_promote_prototypes (VALTYPE) \
? (TARGET_SHMEDIA ? DImode : SImode) : TYPE_MODE (VALTYPE)), \
BASE_RETURN_VALUE_REG (TYPE_MODE (VALTYPE)))