+++ /dev/null
-Backport from upstream, see
-https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467
-
-Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
-diff -Nur gcc-7.2.0.orig/gcc/config/m68k/m68k.c gcc-7.2.0/gcc/config/m68k/m68k.c
---- gcc-7.2.0.orig/gcc/config/m68k/m68k.c 2017-04-03 22:30:56.274463000 +0000
-+++ gcc-7.2.0/gcc/config/m68k/m68k.c 2018-01-27 02:16:53.779367849 +0000
-@@ -182,6 +182,8 @@
- const_tree, bool);
- static bool m68k_cannot_force_const_mem (machine_mode mode, rtx x);
- static bool m68k_output_addr_const_extra (FILE *, rtx);
-+static machine_mode m68k_promote_function_mode (const_tree, machine_mode,
-+ int *, const_tree, int);
- static void m68k_init_sync_libfuncs (void) ATTRIBUTE_UNUSED;
- static enum flt_eval_method
- m68k_excess_precision (enum excess_precision_type);
-@@ -332,6 +334,9 @@
- #undef TARGET_ATOMIC_TEST_AND_SET_TRUEVAL
- #define TARGET_ATOMIC_TEST_AND_SET_TRUEVAL 128
-
-+#undef TARGET_PROMOTE_FUNCTION_MODE
-+#define TARGET_PROMOTE_FUNCTION_MODE m68k_promote_function_mode
-+
- static const struct attribute_spec m68k_attribute_table[] =
- {
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-@@ -6571,4 +6576,20 @@
- return FLT_EVAL_METHOD_UNPREDICTABLE;
- }
-
-+/* Implement TARGET_PROMOTE_FUNCTION_MODE. */
-+
-+static machine_mode
-+m68k_promote_function_mode (const_tree type, machine_mode mode,
-+ int *punsignedp ATTRIBUTE_UNUSED,
-+ const_tree fntype ATTRIBUTE_UNUSED,
-+ int for_return)
-+{
-+ /* Promote libcall arguments narrower than int to match the normal C
-+ ABI (for which promotions are handled via
-+ TARGET_PROMOTE_PROTOTYPES). */
-+ if (type == NULL_TREE && !for_return && (mode == QImode || mode == HImode))
-+ return SImode;
-+ return mode;
-+}
-+
- #include "gt-m68k.h"