From 16f104b32ce13a42aa288b39694a714ad256917a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 11 Jun 2001 16:58:56 +0000 Subject: [PATCH] Fix compile time warnings From-SVN: r43199 --- gcc/ChangeLog | 18 ++++++++++++++++++ gcc/config/m32r/m32r-protos.h | 4 ++-- gcc/config/m32r/m32r.c | 30 ++++++++++++++++-------------- gcc/config/m32r/m32r.h | 20 +++++--------------- gcc/config/m32r/m32r.md | 4 ++-- 5 files changed, 43 insertions(+), 33 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6d8b7abcfd1..fd65dd5569d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2001-06-11 Nick Clifton + + * config/m32r/m32r.md (movstrsi_internal): Do not expect a + return string from m32r_output_block_move. + * config/m32r/m32r-protos.h: Make m32r_output_block_move a + void function. + * config/m32r/m32r.h (INT32_P): Rename to UNIT32_P and remove + integer overflow. + (ROUND_ADVANCE): Remove signed/unsigned conflict. + * config/m32r/m32r.c: Declare prototypes for static functions. + (move_src_operand): Replace INT32_P with UINT32_P. + (function_arg_partial_nregs): Fixed signed/unsigned conflict + in initialisation of 'size'. + (m32r_sched_reord): Remove redundant declarations of 'code'. + (m32r_output_block_move): Change to a void function. + (m32r_encode_section_info): Cast return of + TREE_STRING_POINTER to avoid compile time warning. + 2001-06-11 Richard Henderson * config/alpha/osf5.h (TARGET_LD_BUGGY_LDGP): New. diff --git a/gcc/config/m32r/m32r-protos.h b/gcc/config/m32r/m32r-protos.h index 7912a0a4f44..f3eda8359d4 100644 --- a/gcc/config/m32r/m32r-protos.h +++ b/gcc/config/m32r/m32r-protos.h @@ -1,5 +1,5 @@ /* Prototypes for m32r.c functions used in the md file & elsewhere. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -60,7 +60,7 @@ extern int m32r_address_code PARAMS ((rtx)); extern void m32r_initialize_trampoline PARAMS ((rtx, rtx, rtx)); extern int zero_and_one PARAMS ((rtx, rtx)); extern char * emit_cond_move PARAMS ((rtx *, rtx)); -extern char * m32r_output_block_move PARAMS ((rtx, rtx *)); +extern void m32r_output_block_move PARAMS ((rtx, rtx *)); extern void m32r_expand_block_move PARAMS ((rtx *)); extern void m32r_print_operand PARAMS ((FILE *, rtx, int)); extern void m32r_print_operand_address PARAMS ((FILE *, rtx)); diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 88351dd97b8..5bb2d5691b6 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -1,5 +1,5 @@ /* Subroutines used for code generation on the Mitsubishi M32R cpu. - Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -34,6 +34,7 @@ Boston, MA 02111-1307, USA. */ #include "function.h" #include "recog.h" #include "toplev.h" +#include "ggc.h" #include "m32r-protos.h" /* Save the operands last given to a compare for use when we @@ -55,7 +56,9 @@ enum m32r_sdata m32r_sdata; int m32r_sched_odd_word_p; /* Forward declaration. */ -static void init_reg_tables PARAMS ((void)); +static void init_reg_tables PARAMS ((void)); +static void block_move_call PARAMS ((rtx, rtx, rtx)); +static int m32r_is_insn PARAMS ((rtx)); /* Called by OVERRIDE_OPTIONS to initialize various things. */ @@ -372,7 +375,7 @@ m32r_encode_section_info (decl) if (TREE_CODE_CLASS (TREE_CODE (decl)) == 'd' && DECL_SECTION_NAME (decl) != NULL_TREE) { - char *name = TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); + char *name = (char *) TREE_STRING_POINTER (DECL_SECTION_NAME (decl)); if (! strcmp (name, ".sdata") || ! strcmp (name, ".sbss")) { #if 0 /* ??? There's no reason to disallow this, is there? */ @@ -436,6 +439,7 @@ m32r_encode_section_info (decl) const char *str = XSTR (XEXP (rtl, 0), 0); int len = strlen (str); char *newstr = ggc_alloc (len + 2); + strcpy (newstr + 1, str); *newstr = prefix; XSTR (XEXP (rtl, 0), 0) = newstr; @@ -744,7 +748,7 @@ move_src_operand (op, mode) loadable with one insn, and split the rest into two. The instances where this would help should be rare and the current way is simpler. */ - return INT32_P (INTVAL (op)); + return UINT32_P (INTVAL (op)); case LABEL_REF : return TARGET_ADDR24; case CONST_DOUBLE : @@ -1345,9 +1349,11 @@ function_arg_partial_nregs (cum, mode, type, named) int named ATTRIBUTE_UNUSED; { int ret; - int size = (((mode == BLKmode && type) - ? int_size_in_bytes (type) - : GET_MODE_SIZE (mode)) + UNITS_PER_WORD - 1) / UNITS_PER_WORD; + unsigned int size = + (((mode == BLKmode && type) + ? (unsigned int) int_size_in_bytes (type) + : GET_MODE_SIZE (mode)) + UNITS_PER_WORD - 1) + / UNITS_PER_WORD; if (*cum >= M32R_MAX_PARM_REGS) ret = 0; @@ -1559,7 +1565,6 @@ m32r_sched_reorder (stream, verbose, ready, n_ready) for (i = n_ready-1; i >= 0; i--) { rtx insn = ready[i]; - enum rtx_code code; if (! m32r_is_insn (insn)) { @@ -1615,7 +1620,6 @@ m32r_sched_reorder (stream, verbose, ready, n_ready) for (i = 0; i < n_ready; i++) { rtx insn = ready[i]; - enum rtx_code code; fprintf (stream, " %d", INSN_UID (ready[i])); @@ -2608,12 +2612,12 @@ emit_cond_move (operands, insn) } sprintf (buffer, "mvfc %s, cbr", dest); - + /* If the true value was '0' then we need to invert the results of the move. */ if (INTVAL (operands [2]) == 0) sprintf (buffer + strlen (buffer), "\n\txor3 %s, %s, #1", dest, dest); - + return buffer; } @@ -2777,7 +2781,7 @@ m32r_expand_block_move (operands) operands[3] is a temp register. operands[4] is a temp register. */ -char * +void m32r_output_block_move (insn, operands) rtx insn ATTRIBUTE_UNUSED; rtx operands[]; @@ -2891,8 +2895,6 @@ m32r_output_block_move (insn, operands) first_time = 0; } - - return ""; } /* Return true if op is an integer constant, less than or equal to diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h index 1dd4908da55..45983022bd6 100644 --- a/gcc/config/m32r/m32r.h +++ b/gcc/config/m32r/m32r.h @@ -753,15 +753,13 @@ extern enum reg_class m32r_regno_reg_class[FIRST_PSEUDO_REGISTER]; #define INT8_P(X) ((X) >= -0x80 && (X) <= 0x7f) #define INT16_P(X) ((X) >= -0x8000 && (X) <= 0x7fff) #define CMP_INT16_P(X) ((X) >= -0x7fff && (X) <= 0x8000) -#define UINT16_P(X) (((unsigned HOST_WIDE_INT)(X)) <= 0xffff) #define UPPER16_P(X) (((X) & 0xffff) == 0 \ && ((X) >> 16) >= -0x8000 \ && ((X) >> 16) <= 0x7fff) -#define UINT24_P(X) (((unsigned HOST_WIDE_INT) (X)) < 0x1000000) -#define INT32_P(X) (((X) >= -(HOST_WIDE_INT) 0x80000000 \ - && (X) <= (HOST_WIDE_INT) 0x7fffffff) \ - || (unsigned HOST_WIDE_INT) (X) <= 0xffffffff) -#define UINT5_P(X) ((X) >= 0 && (X) < 32) +#define UINT16_P(X) (((unsigned HOST_WIDE_INT) (X)) <= 0x0000ffff) +#define UINT24_P(X) (((unsigned HOST_WIDE_INT) (X)) <= 0x00ffffff) +#define UINT32_P(X) (((unsigned HOST_WIDE_INT) (X)) <= 0xffffffff) +#define UINT5_P(X) ((X) >= 0 && (X) < 32) #define INVERTED_SIGNED_8BIT(VAL) ((VAL) >= -127 && (VAL) <= 128) #define CONST_OK_FOR_LETTER_P(VALUE, C) \ @@ -1046,19 +1044,11 @@ M32R_STACK_ALIGN (current_function_outgoing_args_size) /* Round arg MODE/TYPE up to the next word boundary. */ #define ROUND_ADVANCE_ARG(MODE, TYPE) \ ((MODE) == BLKmode \ - ? ROUND_ADVANCE (int_size_in_bytes (TYPE)) \ + ? ROUND_ADVANCE ((unsigned int) int_size_in_bytes (TYPE)) \ : ROUND_ADVANCE (GET_MODE_SIZE (MODE))) /* Round CUM up to the necessary point for argument MODE/TYPE. */ -#if 0 -#define ROUND_ADVANCE_CUM(CUM, MODE, TYPE) \ -((((MODE) == BLKmode ? TYPE_ALIGN (TYPE) : GET_MODE_BITSIZE (MODE)) \ - > BITS_PER_WORD) \ - ? ((CUM) + 1 & ~1) \ - : (CUM)) -#else #define ROUND_ADVANCE_CUM(CUM, MODE, TYPE) (CUM) -#endif /* Return boolean indicating arg of type TYPE and mode MODE will be passed in a reg. This includes arguments that have to be passed by reference as the diff --git a/gcc/config/m32r/m32r.md b/gcc/config/m32r/m32r.md index 57ca196fdcd..e692b2c6012 100644 --- a/gcc/config/m32r/m32r.md +++ b/gcc/config/m32r/m32r.md @@ -1,5 +1,5 @@ ;; Machine description of the Mitsubishi M32R cpu for GNU C compiler -;; Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc. ;; This file is part of GNU CC. @@ -2498,6 +2498,6 @@ (clobber (match_scratch:SI 3 "=&r")) ;; temp 1 (clobber (match_scratch:SI 4 "=&r"))] ;; temp 2 "" - "* return m32r_output_block_move (insn, operands);" + "* m32r_output_block_move (insn, operands); return \"\"; " [(set_attr "type" "store8") (set_attr "length" "72")]) ;; Maximum