summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/bitmap.c8
-rw-r--r--gcc/bitmap.h6
-rw-r--r--gcc/c-decl.c143
-rw-r--r--gcc/c-tree.h3
-rw-r--r--gcc/ch/ch-tree.h3
-rw-r--r--gcc/combine.c7
-rw-r--r--gcc/cp/call.c8
-rw-r--r--gcc/cp/class.c3
-rw-r--r--gcc/cp/init.c2
-rw-r--r--gcc/dwarf2out.c6
-rw-r--r--gcc/except.c9
-rw-r--r--gcc/expr.c6
-rw-r--r--gcc/flow.c2
-rw-r--r--gcc/function.c4
-rw-r--r--gcc/reg-stack.c9
-rw-r--r--gcc/regmove.c4
-rw-r--r--gcc/reload.c10
-rw-r--r--gcc/reload1.c7
-rw-r--r--gcc/sched-deps.c8
-rw-r--r--gcc/simplify-rtx.c12
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. */