From ae0ed63adcac41147fc40bd965fc5029082bd571 Mon Sep 17 00:00:00 2001 From: Jan van Male Date: Tue, 10 Jul 2001 12:38:10 +0200 Subject: [PATCH] regmove.c (replace_in_call_usage): Fix warnings. 2001-07-10 Jan van Male * regmove.c (replace_in_call_usage): Fix warnings. * sched-deps.c (add_dependence): Fix warnings. * simplify-rtx.c (simplify_subreg): Likewise. Return NULL_RTX instead of NULL. * reg-stack.c (emit_swap_insn): Eliminate warnings. (subst_asm_stack_regs): Likewise. * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid warnings. * dwarf2out.c (output_call_frame_info): Declare i as int. (build_abbrev_table): Declare n_alloc as int. (dwarf2out_finish): Initialize die. * except.c: Declare sjlj_funcdef_number as unsigned. (connect_post_landing_pads): Declare j as unsigned. (convert_to_eh_region_ranges): Initialize call_site. (output_function_exception_table): Initialize tt_format_size. * expr.c (move_by_pieces_1): Initialize to1. (store_constructor): Initialize minelt and maxelt. * flow.c (mark_regs_live_at_end): Declare i as unsigned. * function.c (instantiate_decls): Avoid signed/unsigned warning. * c-decl.c (combine_parm_decls): Unused, remove. * c-tree.h: Remove prototype for combine_parm_decls. * reload.c (push_reload): Fix warning. (regno_clobbered_p): Likewise. * reload1.c (replace_pseudos_in_call_usage): Likewise. (reload_combine): Likewise. * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings. * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix warnings. * bitmap.c (bitmap_operation): Change user. * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. For cp/: 2001-07-10 Jan van Male * call.c (build_op_delete_call): Initialize fn. (convert_like_real): Delete conditional. (joust): Initialize *w and *l. * class.c: Add prototype for binfo_ctor_vtable. (get_primary_binfo): Initialize result. * init.c (build_java_class_ref): Initialize name. * typeck.c (unary_complex_lvalue): Do not duplicate the argument to modify, pre-, or post-increment when used as an lvalue and when the argument has side-effects. For ch/: 2001-07-10 Jan van Male * ch-tree.h: Remove prototype for combine_parm_decls, unused function. From-SVN: r43893 --- gcc/bitmap.c | 8 +-- gcc/bitmap.h | 6 +- gcc/c-decl.c | 143 --------------------------------------------- gcc/c-tree.h | 3 +- gcc/ch/ch-tree.h | 3 +- gcc/combine.c | 7 ++- gcc/cp/call.c | 8 +-- gcc/cp/class.c | 3 +- gcc/cp/init.c | 2 +- gcc/dwarf2out.c | 6 +- gcc/except.c | 9 +-- gcc/expr.c | 6 +- gcc/flow.c | 2 +- gcc/function.c | 4 +- gcc/reg-stack.c | 9 +-- gcc/regmove.c | 4 +- gcc/reload.c | 10 ++-- gcc/reload1.c | 7 ++- gcc/sched-deps.c | 8 ++- gcc/simplify-rtx.c | 12 ++-- 20 files changed, 62 insertions(+), 198 deletions(-) diff --git a/gcc/bitmap.c b/gcc/bitmap.c index ee068c6f8a3..055024e3667 100644 --- a/gcc/bitmap.c +++ b/gcc/bitmap.c @@ -1,5 +1,5 @@ /* Functions to support general ended bitmaps. - Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -38,7 +38,7 @@ static int bitmap_obstack_init = FALSE; #endif /* Global data */ -bitmap_element bitmap_zero; /* An element of all zero bits. */ +bitmap_element bitmap_zero_bits; /* An element of all zero bits. */ bitmap_element *bitmap_free; /* Freelist of bitmap elements. */ static void bitmap_element_free PARAMS ((bitmap, bitmap_element *)); @@ -572,14 +572,14 @@ bitmap_operation (to, from1, from2, operation) { indx = indx1; from1_tmp = from1_ptr; - from2_tmp = &bitmap_zero; + from2_tmp = &bitmap_zero_bits; from1_ptr = from1_ptr->next; indx1 = (from1_ptr) ? from1_ptr->indx : HIGHEST_INDEX; } else { indx = indx2; - from1_tmp = &bitmap_zero; + from1_tmp = &bitmap_zero_bits; from2_tmp = from2_ptr; from2_ptr = from2_ptr->next; indx2 = (from2_ptr) ? from2_ptr->indx : HIGHEST_INDEX; diff --git a/gcc/bitmap.h b/gcc/bitmap.h index 58e14ee08c5..42b5493c287 100644 --- a/gcc/bitmap.h +++ b/gcc/bitmap.h @@ -1,5 +1,5 @@ /* Functions to support general ended bitmaps. - Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -66,7 +66,7 @@ enum bitmap_bits { /* Global data */ extern bitmap_element *bitmap_free; /* Freelist of bitmap elements */ -extern bitmap_element bitmap_zero; /* Zero bitmap element */ +extern bitmap_element bitmap_zero_bits; /* Zero bitmap element */ /* Clear a bitmap by freeing up the linked list. */ extern void bitmap_clear PARAMS ((bitmap)); @@ -247,7 +247,7 @@ do { \ ptr2_ = ptr2_->next; \ \ tmp2_ = ((ptr2_ != 0 && ptr2_->indx == ptr1_->indx) \ - ? ptr2_ : &bitmap_zero); \ + ? ptr2_ : &bitmap_zero_bits); \ \ for (; word_num_ < BITMAP_ELEMENT_WORDS; word_num_++) \ { \ diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 9d67d342b5e..dc100db5ad4 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -6569,149 +6569,6 @@ store_parm_decls () cfun->x_dont_save_pending_sizes_p = 1; } -/* SPECPARMS is an identifier list--a chain of TREE_LIST nodes - each with a parm name as the TREE_VALUE. A null pointer as TREE_VALUE - stands for an ellipsis in the identifier list. - - PARMLIST is the data returned by get_parm_info for the - parmlist that follows the semicolon. - - We return a value of the same sort that get_parm_info returns, - except that it describes the combination of identifiers and parmlist. */ - -tree -combine_parm_decls (specparms, parmlist, void_at_end) - tree specparms, parmlist; - int void_at_end; -{ - register tree fndecl = current_function_decl; - register tree parm; - - tree parmdecls = TREE_PURPOSE (parmlist); - - /* This is a chain of any other decls that came in among the parm - declarations. They were separated already by get_parm_info, - so we just need to keep them separate. */ - tree nonparms = TREE_VALUE (parmlist); - - tree types = 0; - - for (parm = parmdecls; parm; parm = TREE_CHAIN (parm)) - DECL_WEAK (parm) = 0; - - for (parm = specparms; parm; parm = TREE_CHAIN (parm)) - { - register tree tail, found = NULL; - - /* See if any of the parmdecls specifies this parm by name. */ - for (tail = parmdecls; tail; tail = TREE_CHAIN (tail)) - if (DECL_NAME (tail) == TREE_VALUE (parm)) - { - found = tail; - break; - } - - /* If declaration already marked, we have a duplicate name. - Complain, and don't use this decl twice. */ - if (found && DECL_WEAK (found)) - { - error_with_decl (found, "multiple parameters named `%s'"); - found = 0; - } - - /* If the declaration says "void", complain and ignore it. */ - if (found && VOID_TYPE_P (TREE_TYPE (found))) - { - error_with_decl (found, "parameter `%s' declared void"); - TREE_TYPE (found) = integer_type_node; - DECL_ARG_TYPE (found) = integer_type_node; - layout_decl (found, 0); - } - - /* Traditionally, a parm declared float is actually a double. */ - if (found && flag_traditional - && TYPE_MAIN_VARIANT (TREE_TYPE (found)) == float_type_node) - { - TREE_TYPE (found) = double_type_node; - DECL_ARG_TYPE (found) = double_type_node; - layout_decl (found, 0); - } - - /* If no declaration found, default to int. */ - if (!found) - { - found = build_decl (PARM_DECL, TREE_VALUE (parm), - integer_type_node); - DECL_ARG_TYPE (found) = TREE_TYPE (found); - DECL_SOURCE_LINE (found) = DECL_SOURCE_LINE (fndecl); - DECL_SOURCE_FILE (found) = DECL_SOURCE_FILE (fndecl); - error_with_decl (found, "type of parameter `%s' is not declared"); - pushdecl (found); - } - - TREE_PURPOSE (parm) = found; - - /* Mark this decl as "already found". */ - DECL_WEAK (found) = 1; - } - - /* Complain about any actual PARM_DECLs not matched with any names. */ - - for (parm = parmdecls; parm;) - { - tree next = TREE_CHAIN (parm); - TREE_CHAIN (parm) = 0; - - /* Complain about args with incomplete types. */ - if (!COMPLETE_TYPE_P (TREE_TYPE (parm))) - { - error_with_decl (parm, "parameter `%s' has incomplete type"); - TREE_TYPE (parm) = error_mark_node; - } - - if (! DECL_WEAK (parm)) - { - error_with_decl (parm, - "declaration for parameter `%s' but no such parameter"); - /* Pretend the parameter was not missing. - This gets us to a standard state and minimizes - further error messages. */ - specparms - = chainon (specparms, - tree_cons (parm, NULL_TREE, NULL_TREE)); - } - - parm = next; - } - - /* Chain the declarations together in the order of the list of names. - At the same time, build up a list of their types, in reverse order. */ - - parm = specparms; - parmdecls = 0; - { - register tree last; - for (last = 0; parm; parm = TREE_CHAIN (parm)) - if (TREE_PURPOSE (parm)) - { - if (last == 0) - parmdecls = TREE_PURPOSE (parm); - else - TREE_CHAIN (last) = TREE_PURPOSE (parm); - last = TREE_PURPOSE (parm); - TREE_CHAIN (last) = 0; - - types = tree_cons (NULL_TREE, TREE_TYPE (parm), types); - } - } - - if (void_at_end) - return tree_cons (parmdecls, nonparms, - nreverse (tree_cons (NULL_TREE, void_type_node, types))); - - return tree_cons (parmdecls, nonparms, nreverse (types)); -} - /* Finish up a function declaration and compile that function all the way to assembler language output. The free the storage for the function definition. diff --git a/gcc/c-tree.h b/gcc/c-tree.h index 6c466e76086..9b0c2d63c1b 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -1,6 +1,6 @@ /* Definitions for C parsing and type checking. Copyright (C) 1987, 1993, 1994, 1995, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -168,7 +168,6 @@ extern void c_mark_varargs PARAMS ((void)); extern void check_for_loop_decls PARAMS ((void)); extern tree check_identifier PARAMS ((tree, tree)); extern void clear_parm_order PARAMS ((void)); -extern tree combine_parm_decls PARAMS ((tree, tree, int)); extern int complete_array_type PARAMS ((tree, tree, int)); extern void declare_parm_level PARAMS ((int)); extern tree define_label PARAMS ((const char *, int, diff --git a/gcc/ch/ch-tree.h b/gcc/ch/ch-tree.h index d38445bb0f4..62aae2c9f2d 100644 --- a/gcc/ch/ch-tree.h +++ b/gcc/ch/ch-tree.h @@ -1,6 +1,6 @@ /* Definitions for CHILL parsing and type checking. Copyright (C) 1992, 1993, 1994, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU CC. @@ -669,7 +669,6 @@ extern tree c_build_type_variant PARAMS ((tree, int, int)); extern int c_decode_option PARAMS ((int, char **)); extern void c_mark_varargs PARAMS ((void)); extern void clear_parm_order PARAMS ((void)); -extern tree combine_parm_decls PARAMS ((tree, tree, int)); extern int complete_array_type PARAMS ((tree, tree, int)); extern void declare_parm_level PARAMS ((int)); extern tree define_label PARAMS ((const char *, int, tree)); diff --git a/gcc/combine.c b/gcc/combine.c index 84e4935a20e..6972d85fc09 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -8463,7 +8463,8 @@ num_sign_bit_copies (x, mode) of sign bit copies, we can just subtract that amount from the number. */ if (GET_CODE (XEXP (x, 1)) == CONST_INT - && INTVAL (XEXP (x, 1)) >= 0 && INTVAL (XEXP (x, 1)) < bitwidth) + && INTVAL (XEXP (x, 1)) >= 0 + && INTVAL (XEXP (x, 1)) < (int) bitwidth) { num0 = num_sign_bit_copies (XEXP (x, 0), mode); return MAX (1, num0 - (code == ROTATE ? INTVAL (XEXP (x, 1)) @@ -8595,7 +8596,7 @@ num_sign_bit_copies (x, mode) num0 = num_sign_bit_copies (XEXP (x, 0), mode); if (GET_CODE (XEXP (x, 1)) == CONST_INT && INTVAL (XEXP (x, 1)) > 0) - num0 = MIN (bitwidth, num0 + INTVAL (XEXP (x, 1))); + num0 = MIN ((int) bitwidth, num0 + INTVAL (XEXP (x, 1))); return num0; @@ -8603,7 +8604,7 @@ num_sign_bit_copies (x, mode) /* Left shifts destroy copies. */ if (GET_CODE (XEXP (x, 1)) != CONST_INT || INTVAL (XEXP (x, 1)) < 0 - || INTVAL (XEXP (x, 1)) >= bitwidth) + || INTVAL (XEXP (x, 1)) >= (int) bitwidth) return 1; num0 = num_sign_bit_copies (XEXP (x, 0), mode); diff --git a/gcc/cp/call.c b/gcc/cp/call.c index e7b6bbd824b..7cfbd96f8cf 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -3555,7 +3555,8 @@ build_op_delete_call (code, addr, size, flags, placement) tree addr, size, placement; int flags; { - tree fn, fns, fnname, fntype, argtypes, args, type; + tree fn = NULL_TREE; + tree fns, fnname, fntype, argtypes, args, type; int pass; if (addr == error_mark_node) @@ -3871,8 +3872,7 @@ convert_like_real (convs, expr, fn, argnum, inner) /* Copy-initialization where the cv-unqualified version of the source type is the same class as, or a derived class of, the class of the destination [is treated as direct-initialization]. [dcl.init] */ - if (fn) - savew = warningcount, savee = errorcount; + savew = warningcount, savee = errorcount; expr = build_new_method_call (NULL_TREE, complete_ctor_identifier, build_tree_list (NULL_TREE, expr), TYPE_BINFO (totype), @@ -5425,7 +5425,7 @@ tweak: if (!pedantic) { int rank1 = IDENTITY_RANK, rank2 = IDENTITY_RANK; - struct z_candidate *w, *l; + struct z_candidate *w = 0, *l = 0; for (i = 0; i < len; ++i) { diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 013b3ba7576..fac4a3891a9 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -202,6 +202,7 @@ static void update_vtable_entry_for_fn PARAMS ((tree, tree, tree, tree *)); static tree copy_virtuals PARAMS ((tree)); static void build_ctor_vtbl_group PARAMS ((tree, tree)); static void build_vtt PARAMS ((tree)); +static tree binfo_ctor_vtable PARAMS ((tree)); static tree *build_vtt_inits PARAMS ((tree, tree, tree *, tree *)); static tree dfs_build_secondary_vptr_vtt_inits PARAMS ((tree, void *)); static tree dfs_ctor_vtable_bases_queue_p PARAMS ((tree, void *data)); @@ -6796,7 +6797,7 @@ get_primary_binfo (binfo) tree binfo; { tree primary_base; - tree result; + tree result = NULL_TREE; tree virtuals; primary_base = CLASSTYPE_PRIMARY_BINFO (BINFO_TYPE (binfo)); diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 6bce1937652..d2b2b05f887 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2200,7 +2200,7 @@ tree build_java_class_ref (type) tree type; { - tree name, class_decl; + tree name = NULL_TREE, class_decl; static tree CL_suffix = NULL_TREE; if (CL_suffix == NULL_TREE) CL_suffix = get_identifier("class$"); diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 7e385d05747..f5b508c55ed 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1716,7 +1716,7 @@ static void output_call_frame_info (for_eh) int for_eh; { - register unsigned long i; + register unsigned int i; register dw_fde_ref fde; register dw_cfi_ref cfi; char l1[20], l2[20]; @@ -5507,7 +5507,7 @@ build_abbrev_table (die) register dw_die_ref die; { register unsigned long abbrev_id; - register unsigned long n_alloc; + register unsigned int n_alloc; register dw_die_ref c; register dw_attr_ref d_attr, a_attr; @@ -11450,7 +11450,7 @@ void dwarf2out_finish () { limbo_die_node *node, *next_node; - dw_die_ref die; + dw_die_ref die = 0; /* Traverse the limbo die list, and add parent/child links. The only dies without parents that should be here are concrete instances of diff --git a/gcc/except.c b/gcc/except.c index e298329411f..db961fb1f2d 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -100,7 +100,7 @@ tree (*lang_eh_runtime_type) PARAMS ((tree)); rtx exception_handler_labels; static int call_site_base; -static int sjlj_funcdef_number; +static unsigned int sjlj_funcdef_number; static htab_t type_to_runtime_map; /* Describe the SjLj_Function_Context structure. */ @@ -1855,7 +1855,8 @@ connect_post_landing_pads () static void dw2_build_landing_pads () { - int i, j; + int i; + unsigned int j; for (i = cfun->eh->last_region_number; i > 0; --i) { @@ -3233,7 +3234,7 @@ convert_to_eh_region_ranges () rtx last_action_insn = NULL_RTX; rtx last_landing_pad = NULL_RTX; rtx first_no_action_insn = NULL_RTX; - int call_site; + int call_site = 0; if (USING_SJLJ_EXCEPTIONS || cfun->eh->region_tree == NULL) return; @@ -3504,7 +3505,7 @@ output_function_exception_table () #endif int have_tt_data; int funcdef_number; - int tt_format_size; + int tt_format_size = 0; /* Not all functions need anything. */ if (! cfun->uses_eh_lsda) diff --git a/gcc/expr.c b/gcc/expr.c index 9be312b9f43..a6712826a33 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -1566,7 +1566,7 @@ move_by_pieces_1 (genfun, mode, data) struct move_by_pieces *data; { unsigned int size = GET_MODE_SIZE (mode); - rtx to1, from1; + rtx to1 = NULL_RTX, from1; while (data->len >= size) { @@ -4699,8 +4699,8 @@ store_constructor (exp, target, align, cleared, size) tree elttype = TREE_TYPE (type); int const_bounds_p = (host_integerp (TYPE_MIN_VALUE (domain), 0) && host_integerp (TYPE_MAX_VALUE (domain), 0)); - HOST_WIDE_INT minelt; - HOST_WIDE_INT maxelt; + HOST_WIDE_INT minelt = 0; + HOST_WIDE_INT maxelt = 0; /* If we have constant bounds for the range of the type, get them. */ if (const_bounds_p) diff --git a/gcc/flow.c b/gcc/flow.c index 784d21dc7c5..ba1b99c23f9 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -3773,7 +3773,7 @@ static void mark_regs_live_at_end (set) regset set; { - int i; + unsigned int i; /* If exiting needs the right stack value, consider the stack pointer live at the end of the function. */ diff --git a/gcc/function.c b/gcc/function.c index 4019bb69a17..14c4513a3fa 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -3564,13 +3564,15 @@ instantiate_decls (fndecl, valid_only) for (decl = DECL_ARGUMENTS (fndecl); decl; decl = TREE_CHAIN (decl)) { HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl)); + HOST_WIDE_INT size_rtl; instantiate_decl (DECL_RTL (decl), size, valid_only); /* If the parameter was promoted, then the incoming RTL mode may be larger than the declared type size. We must use the larger of the two sizes. */ - size = MAX (GET_MODE_SIZE (GET_MODE (DECL_INCOMING_RTL (decl))), size); + size_rtl = GET_MODE_SIZE (GET_MODE (DECL_INCOMING_RTL (decl))); + size = MAX (size_rtl, size); instantiate_decl (DECL_INCOMING_RTL (decl), size, valid_only); } diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 2bf0fe7e3e3..c2337606bba 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -1026,14 +1026,15 @@ emit_swap_insn (insn, regstack, reg) swap with, omit the swap. */ if (GET_CODE (i1dest) == REG && REGNO (i1dest) == FIRST_STACK_REG - && GET_CODE (i1src) == REG && REGNO (i1src) == hard_regno - 1 + && GET_CODE (i1src) == REG + && REGNO (i1src) == (unsigned) hard_regno - 1 && find_regno_note (i1, REG_DEAD, FIRST_STACK_REG) == NULL_RTX) return; /* If the previous insn wrote to the reg we are to swap with, omit the swap. */ - if (GET_CODE (i1dest) == REG && REGNO (i1dest) == hard_regno + if (GET_CODE (i1dest) == REG && REGNO (i1dest) == (unsigned) hard_regno && GET_CODE (i1src) == REG && REGNO (i1src) == FIRST_STACK_REG && find_regno_note (i1, REG_DEAD, FIRST_STACK_REG) == NULL_RTX) return; @@ -1969,7 +1970,7 @@ subst_asm_stack_regs (insn, regstack) if (regno < 0) abort (); - if (regno != REGNO (recog_data.operand[i])) + if ((unsigned int) regno != REGNO (recog_data.operand[i])) { /* recog_data.operand[i] is not in the right place. Find it and swap it with whatever is already in I's place. @@ -2071,7 +2072,7 @@ subst_asm_stack_regs (insn, regstack) for (j = 0; j < n_outputs; j++) if (STACK_REG_P (recog_data.operand[j]) - && REGNO (recog_data.operand[j]) == i) + && REGNO (recog_data.operand[j]) == (unsigned) i) { regstack->reg[++regstack->top] = i; SET_HARD_REG_BIT (regstack->reg_set, i); diff --git a/gcc/regmove.c b/gcc/regmove.c index faff2e4589a..7e491433512 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -72,7 +72,7 @@ static void flags_set_1 PARAMS ((rtx, rtx, void *)); static int try_auto_increment PARAMS ((rtx, rtx, rtx, rtx, HOST_WIDE_INT, int)); static int find_matches PARAMS ((rtx, struct match *)); -static void replace_in_call_usage PARAMS ((rtx *, int, rtx, rtx)); +static void replace_in_call_usage PARAMS ((rtx *, unsigned int, rtx, rtx)); static int fixup_match_1 PARAMS ((rtx, rtx, rtx, rtx, rtx, int, int, int, FILE *)) ; static int reg_is_remote_constant_p PARAMS ((rtx, rtx, rtx)); @@ -1619,7 +1619,7 @@ find_matches (insn, matchp) static void replace_in_call_usage (loc, dst_reg, src, insn) rtx *loc; - int dst_reg; + unsigned int dst_reg; rtx src; rtx insn; { diff --git a/gcc/reload.c b/gcc/reload.c index adafd1a477e..03e5d21e00b 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1039,7 +1039,7 @@ push_reload (in, out, inloc, outloc, class, order as the reloads. Thus if the outer reload is also of type RELOAD_OTHER, we are guaranteed that this inner reload will be output before the outer reload. */ - push_reload (SUBREG_REG (in), NULL_RTX, &SUBREG_REG (in), NULL_RTX, + push_reload (SUBREG_REG (in), NULL_RTX, &SUBREG_REG (in), (rtx *)0, in_class, VOIDmode, VOIDmode, 0, 0, opnum, type); dont_remove_subreg = 1; } @@ -6698,14 +6698,14 @@ regno_clobbered_p (regno, insn, mode, sets) enum machine_mode mode; int sets; { - int nregs = HARD_REGNO_NREGS (regno, mode); - int endregno = regno + nregs; + unsigned int nregs = HARD_REGNO_NREGS (regno, mode); + unsigned int endregno = regno + nregs; if ((GET_CODE (PATTERN (insn)) == CLOBBER || (sets && GET_CODE (PATTERN (insn)) == SET)) && GET_CODE (XEXP (PATTERN (insn), 0)) == REG) { - int test = REGNO (XEXP (PATTERN (insn), 0)); + unsigned int test = REGNO (XEXP (PATTERN (insn), 0)); return test >= regno && test < endregno; } @@ -6721,7 +6721,7 @@ regno_clobbered_p (regno, insn, mode, sets) || (sets && GET_CODE (PATTERN (insn)) == SET)) && GET_CODE (XEXP (elt, 0)) == REG) { - int test = REGNO (XEXP (elt, 0)); + unsigned int test = REGNO (XEXP (elt, 0)); if (test >= regno && test < endregno) return 1; diff --git a/gcc/reload1.c b/gcc/reload1.c index c6a5c238548..1423e6ed0d7 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -601,7 +601,7 @@ replace_pseudos_in_call_usage (loc, mem_mode, usage) code = GET_CODE (x); if (code == REG) { - int regno = REGNO (x); + unsigned int regno = REGNO (x); if (regno < FIRST_PSEUDO_REGISTER) return; @@ -8585,7 +8585,8 @@ static void reload_combine () { rtx insn, set; - int first_index_reg = -1, last_index_reg; + int first_index_reg = -1; + int last_index_reg = 0; int i; unsigned int r; int last_label_ruid; @@ -8816,7 +8817,7 @@ reload_combine () rtx usage_rtx = XEXP (XEXP (link, 0), 0); if (GET_CODE (usage_rtx) == REG) { - int i; + unsigned int i; unsigned int start_reg = REGNO (usage_rtx); unsigned int num_regs = HARD_REGNO_NREGS (start_reg, GET_MODE (usage_rtx)); diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index d303e7a86df..f7439344546 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1,7 +1,7 @@ /* Instruction scheduling pass. This file computes dependencies between instructions. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000 Free Software Foundation, Inc. + 1999, 2000, 2001 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) Enhanced by, and currently maintained by, Jim Wilson (wilson@cygnus.com) @@ -197,7 +197,6 @@ add_dependence (insn, elem, dep_type) { rtx link, next; int present_p; - enum reg_note present_dep_type; rtx cond1, cond2; /* Don't depend an insn on itself. */ @@ -271,10 +270,13 @@ add_dependence (insn, elem, dep_type) dramatically for some code. */ if (true_dependency_cache != NULL) { + enum reg_note present_dep_type = 0; + if (anti_dependency_cache == NULL || output_dependency_cache == NULL) abort (); if (TEST_BIT (true_dependency_cache[INSN_LUID (insn)], INSN_LUID (elem))) - present_dep_type = 0; + /* Do nothing (present_set_type is already 0). */ + ; else if (TEST_BIT (anti_dependency_cache[INSN_LUID (insn)], INSN_LUID (elem))) present_dep_type = REG_DEP_ANTI; diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 3cdc3dc546d..b21066ed3cf 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2196,7 +2196,7 @@ simplify_subreg (outermode, op, innermode, byte) if (CONSTANT_P (op)) { int offset, part; - unsigned HOST_WIDE_INT val; + unsigned HOST_WIDE_INT val = 0; /* ??? This code is partly redundant with code bellow, but can handle the subregs of floats and similar corner cases. @@ -2231,7 +2231,7 @@ simplify_subreg (outermode, op, innermode, byte) /* We can't handle this case yet. */ if (GET_MODE_BITSIZE (outermode) >= HOST_BITS_PER_WIDE_INT) - return NULL; + return NULL_RTX; part = offset >= HOST_BITS_PER_WIDE_INT; if ((BITS_PER_WORD > HOST_BITS_PER_WIDE_INT @@ -2253,7 +2253,7 @@ simplify_subreg (outermode, op, innermode, byte) /* We don't handle synthetizing of non-integral constants yet. */ if (GET_MODE_CLASS (outermode) != MODE_INT) - return NULL; + return NULL_RTX; if (BYTES_BIG_ENDIAN || WORDS_BIG_ENDIAN) { @@ -2322,8 +2322,8 @@ simplify_subreg (outermode, op, innermode, byte) return NULL_RTX; /* Bail out in case resulting subreg would be incorrect. */ if (final_offset % GET_MODE_SIZE (outermode) - || final_offset >= GET_MODE_SIZE (innermostmode)) - return NULL; + || (unsigned) final_offset >= GET_MODE_SIZE (innermostmode)) + return NULL_RTX; } else { @@ -2339,7 +2339,7 @@ simplify_subreg (outermode, op, innermode, byte) if (offset == final_offset) final_offset = 0; else - return NULL; + return NULL_RTX; } /* Recurse for futher possible simplifications. */ -- 2.30.2