diff options
author | Nick Clifton <nickc@redhat.com> | 2004-04-30 05:59:06 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2004-04-29 22:59:06 -0700 |
commit | 150e407ad0d90b214e008bb828016ab4f3579e84 (patch) | |
tree | 14f3c2a29a8ee6dce28bb943069f76dcab5e9415 /gcc | |
parent | 6862f97f4535814a0ceba6134f86b869a6377a1d (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/sh/sh-protos.h | 1 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 3 | ||||
-rw-r--r-- | gcc/config/sh/sh.h | 1 |
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))) |