summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog27
-rw-r--r--gcc/bitmap.c14
-rw-r--r--gcc/config/alpha/alpha.c11
-rw-r--r--gcc/config/alpha/alpha.h2
-rw-r--r--gcc/cppinit.c3
-rw-r--r--gcc/expmed.c2
-rw-r--r--gcc/flow.c62
-rw-r--r--gcc/function.c2
-rw-r--r--gcc/genrecog.c12
-rw-r--r--gcc/lcm.c12
-rw-r--r--gcc/mips-tfile.c46
-rw-r--r--gcc/optabs.c3
-rw-r--r--gcc/reload.c3
-rw-r--r--gcc/reload1.c1
-rw-r--r--gcc/sbitmap.c6
-rw-r--r--gcc/unroll.c2
-rw-r--r--gcc/varasm.c2
17 files changed, 152 insertions, 58 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index db5b0a851ce..0be42ce45c8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,30 @@
+Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
+ * cppinit.c (new_pending_define): Add cast to avoid warning.
+ * expmed.c (extract_bit_field): Likewise.
+ * flow.c (enum reorder_skip_type): New type.
+ (skip_insns_between_blcok): New it.
+ Rework to avoid warning about possibly undefined variable.
+ * function.c (assign_parms): Make thisparm_boundary unsigned.
+ * genrecog.c (write_switch): Cast XWINT result to int.
+ * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
+ * mips-tfile.c (init_file): Make two versions of FDR intializer:
+ one for MIPS and one for Alpha.
+ (get_tag, copy_object): Add casts to avoid warnings.
+ * optabs.c (init_one_libfunc): Cast NAME to (char *).
+ * reload.c (find_reloads): Make TYPE enum reload_type.
+ * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
+ * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
+ * varasm.c (compare_constant_1): Add cast to avoid warning.
+ * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
+ to (char *).
+ (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
+ Cast switch operand of size to int.
+ (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
+ * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
+ in unhandled case.
+
2000-02-18 Nick Clifton <nickc@cygnus.com>
* config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
diff --git a/gcc/bitmap.c b/gcc/bitmap.c
index 6c6c9787026..99b5f5a4e0e 100644
--- a/gcc/bitmap.c
+++ b/gcc/bitmap.c
@@ -395,10 +395,12 @@ bitmap_operation (to, from1, from2, operation)
bitmap from2;
enum bitmap_bits operation;
{
+#define HIGHEST_INDEX (unsigned int) ~0
+
bitmap_element *from1_ptr = from1->first;
bitmap_element *from2_ptr = from2->first;
- unsigned int indx1 = (from1_ptr) ? from1_ptr->indx : -1;
- unsigned int indx2 = (from2_ptr) ? from2_ptr->indx : -1;
+ unsigned int indx1 = (from1_ptr) ? from1_ptr->indx : HIGHEST_INDEX;
+ unsigned int indx2 = (from2_ptr) ? from2_ptr->indx : HIGHEST_INDEX;
bitmap_element *to_ptr = to->first;
bitmap_element *from1_tmp;
bitmap_element *from2_tmp;
@@ -449,9 +451,9 @@ bitmap_operation (to, from1, from2, operation)
from1_tmp = from1_ptr;
from2_tmp = from2_ptr;
from1_ptr = from1_ptr->next;
- indx1 = (from1_ptr) ? from1_ptr->indx : -1;
+ indx1 = (from1_ptr) ? from1_ptr->indx : HIGHEST_INDEX;
from2_ptr = from2_ptr->next;
- indx2 = (from2_ptr) ? from2_ptr->indx : -1;
+ indx2 = (from2_ptr) ? from2_ptr->indx : HIGHEST_INDEX;
}
else if (indx1 < indx2)
{
@@ -459,7 +461,7 @@ bitmap_operation (to, from1, from2, operation)
from1_tmp = from1_ptr;
from2_tmp = &bitmap_zero;
from1_ptr = from1_ptr->next;
- indx1 = (from1_ptr) ? from1_ptr->indx : -1;
+ indx1 = (from1_ptr) ? from1_ptr->indx : HIGHEST_INDEX;
}
else
{
@@ -467,7 +469,7 @@ bitmap_operation (to, from1, from2, operation)
from1_tmp = &bitmap_zero;
from2_tmp = from2_ptr;
from2_ptr = from2_ptr->next;
- indx2 = (from2_ptr) ? from2_ptr->indx : -1;
+ indx2 = (from2_ptr) ? from2_ptr->indx : HIGHEST_INDEX;
}
/* Find the appropriate element from TO. Begin by discarding
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index f3ff40583f2..8ef62c8d8ce 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1997,7 +1997,7 @@ alpha_emit_xfloating_libcall (func, target, operands, noperands, equiv)
abort ();
}
- tmp = gen_rtx_MEM (QImode, gen_rtx_SYMBOL_REF (Pmode, func));
+ tmp = gen_rtx_MEM (QImode, gen_rtx_SYMBOL_REF (Pmode, (char *) func));
tmp = emit_call_insn (gen_call_value (reg, tmp, const0_rtx,
const0_rtx, const0_rtx));
CALL_INSN_FUNCTION_USAGE (tmp) = usage;
@@ -2199,7 +2199,7 @@ alpha_expand_unaligned_load (tgt, mem, size, ofs, sign)
{
emit_move_insn (addr, plus_constant (XEXP (mem, 0), ofs));
emit_insn (gen_extxl (extl, meml, GEN_INT (size*8), addr));
- switch (size)
+ switch ((int) size)
{
case 2:
emit_insn (gen_extwh (exth, memh, addr));
@@ -2262,7 +2262,7 @@ alpha_expand_unaligned_store (dst, src, size, ofs)
emit_insn (gen_insxh (insh, gen_lowpart (DImode, src),
GEN_INT (size*8), addr));
- switch (size)
+ switch ((int) size)
{
case 2:
emit_insn (gen_inswl (insl, gen_lowpart (HImode, src), addr));
@@ -2278,7 +2278,7 @@ alpha_expand_unaligned_store (dst, src, size, ofs)
emit_insn (gen_mskxh (dsth, dsth, GEN_INT (size*8), addr));
- switch (size)
+ switch ((int) size)
{
case 2:
emit_insn (gen_mskxl (dstl, dstl, GEN_INT (0xffff), addr));
@@ -4579,6 +4579,8 @@ alpha_expand_epilogue ()
fp_is_frame_pointer = ((TARGET_OPEN_VMS && vms_is_stack_procedure)
|| (!TARGET_OPEN_VMS && frame_pointer_needed));
+ fp_offset = 0;
+ sa_reg = stack_pointer_rtx;
eh_ofs = cfun->machine->eh_epilogue_sp_ofs;
if (sa_size)
@@ -4592,7 +4594,6 @@ alpha_expand_epilogue ()
}
/* Cope with very large offsets to the register save area. */
- sa_reg = stack_pointer_rtx;
if (reg_offset + sa_size > 0x8000)
{
int low = ((reg_offset & 0xffff) ^ 0x8000) - 0x8000;
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index 1d64f37e4bd..b1c25c091d1 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -965,6 +965,8 @@ extern int alpha_memory_latency;
+ (ALPHA_ROUND (get_frame_size () \
+ current_function_pretend_args_size) \
- current_function_pretend_args_size)); \
+ else \
+ abort (); \
}
/* Define this if stack space is still allocated for a parameter passed
diff --git a/gcc/cppinit.c b/gcc/cppinit.c
index b7d230197f4..5e05511f0c4 100644
--- a/gcc/cppinit.c
+++ b/gcc/cppinit.c
@@ -1058,7 +1058,7 @@ new_pending_define (opts, text)
struct pending_option *o = (struct pending_option *)
xmalloc (sizeof (struct pending_option));
- o->arg = text;
+ o->arg = (char *) text;
o->next = NULL;
o->undef = 0;
APPEND (opts->pending, define, o);
@@ -1067,6 +1067,7 @@ new_pending_define (opts, text)
/* Handle one command-line option in (argc, argv).
Can be called multiple times, to handle multiple sets of options.
Returns number of strings consumed. */
+
int
cpp_handle_option (pfile, argc, argv)
cpp_reader *pfile;
diff --git a/gcc/expmed.c b/gcc/expmed.c
index f9383758905..736a7f2bdf7 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -1257,7 +1257,7 @@ extract_bit_field (str_rtx, bitsize, bitnum, unsignedp,
if (bestmode == VOIDmode
|| (SLOW_UNALIGNED_ACCESS (bestmode, align)
- && GET_MODE_SIZE (bestmode) > align))
+ && GET_MODE_SIZE (bestmode) > (int) align))
goto extzv_loses;
/* Compute offset as multiple of this unit,
diff --git a/gcc/flow.c b/gcc/flow.c
index b56fd981d77..c1ec515d8ba 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -7072,9 +7072,8 @@ typedef struct reorder_block_def {
static int reorder_index;
static basic_block reorder_last_visited;
-#define REORDER_SKIP_BEFORE 0x1
-#define REORDER_SKIP_AFTER 0x2
-#define REORDER_SKIP_BLOCK_END 0x3
+enum reorder_skip_type {REORDER_SKIP_BEFORE, REORDER_SKIP_AFTER,
+ REORDER_SKIP_BLOCK_END};
/* Skip over insns BEFORE or AFTER BB which are typically associated with
basic block BB. */
@@ -7082,7 +7081,7 @@ static basic_block reorder_last_visited;
static rtx
skip_insns_between_block (bb, skip_type)
basic_block bb;
- int skip_type;
+ enum reorder_skip_type skip_type;
{
rtx insn, last_insn;
@@ -7090,6 +7089,7 @@ skip_insns_between_block (bb, skip_type)
{
if (bb == ENTRY_BLOCK_PTR)
return 0;
+
last_insn = bb->head;
for (insn = PREV_INSN (bb->head);
insn && insn != BASIC_BLOCK (bb->index - 1)->end;
@@ -7097,6 +7097,7 @@ skip_insns_between_block (bb, skip_type)
{
if (NEXT_INSN (insn) != last_insn)
break;
+
if (GET_CODE (insn) == NOTE
&& NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_END
&& NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK
@@ -7106,8 +7107,8 @@ skip_insns_between_block (bb, skip_type)
break;
}
}
- else if (skip_type == REORDER_SKIP_AFTER
- || skip_type == REORDER_SKIP_BLOCK_END)
+
+ else
{
last_insn = bb->end;
@@ -7128,6 +7129,7 @@ skip_insns_between_block (bb, skip_type)
&& (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END
|| NOTE_LINE_NUMBER (insn) == NOTE_INSN_BLOCK_END)))
continue;
+
if (GET_CODE (insn) == CODE_LABEL
&& GET_CODE (NEXT_INSN (insn)) == JUMP_INSN
&& (GET_CODE (PATTERN (NEXT_INSN (insn))) == ADDR_VEC
@@ -7139,34 +7141,40 @@ skip_insns_between_block (bb, skip_type)
}
break;
}
- }
- if (skip_type == REORDER_SKIP_BLOCK_END)
- {
- int found_block_end = 0;
- for (; insn; last_insn = insn, insn = NEXT_INSN (insn))
+ if (skip_type == REORDER_SKIP_BLOCK_END)
{
- if (bb->index + 1 != n_basic_blocks
- && insn == BASIC_BLOCK (bb->index + 1)->head)
- break;
+ int found_block_end = 0;
- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_BLOCK_END)
+ for (; insn; last_insn = insn, insn = NEXT_INSN (insn))
{
- found_block_end = 1;
- continue;
+ if (bb->index + 1 != n_basic_blocks
+ && insn == BASIC_BLOCK (bb->index + 1)->head)
+ break;
+
+ if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_BLOCK_END)
+ {
+ found_block_end = 1;
+ continue;
+ }
+
+ if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED)
+ continue;
+
+ if (GET_CODE (insn) == NOTE
+ && NOTE_LINE_NUMBER (insn) >= 0
+ && NEXT_INSN (insn)
+ && (NOTE_LINE_NUMBER (NEXT_INSN (insn))
+ == NOTE_INSN_BLOCK_END))
+ continue;
+ break;
}
- if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED)
- continue;
- if (GET_CODE (insn) == NOTE
- && NOTE_LINE_NUMBER (insn) >= 0
- && NEXT_INSN (insn)
- && NOTE_LINE_NUMBER (NEXT_INSN (insn)) == NOTE_INSN_BLOCK_END)
- continue;
- break;
+
+ if (! found_block_end)
+ last_insn = 0;
}
- if (! found_block_end)
- last_insn = 0;
}
+
return last_insn;
}
diff --git a/gcc/function.c b/gcc/function.c
index 914cc959f52..ad9e868e48e 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4348,7 +4348,7 @@ assign_parms (fndecl)
for its ultimate type, don't use that slot after entry.
We'll make another stack slot, if we need one. */
{
- int thisparm_boundary
+ unsigned int thisparm_boundary
= FUNCTION_ARG_BOUNDARY (promoted_mode, passed_type);
if (GET_MODE_ALIGNMENT (nominal_mode) > thisparm_boundary)
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
index 5db3aa29048..540a84a19b6 100644
--- a/gcc/genrecog.c
+++ b/gcc/genrecog.c
@@ -1785,19 +1785,21 @@ write_switch (start, depth)
switch (type)
{
case DT_mode:
- printf("GET_MODE (x%d)", depth);
+ printf ("GET_MODE (x%d)", depth);
break;
case DT_veclen:
- printf("XVECLEN (x%d, 0)", depth);
+ printf ("XVECLEN (x%d, 0)", depth);
break;
case DT_elt_zero_int:
- printf("XINT (x%d, 0)", depth);
+ printf ("XINT (x%d, 0)", depth);
break;
case DT_elt_one_int:
- printf("XINT (x%d, 1)", depth);
+ printf ("XINT (x%d, 1)", depth);
break;
case DT_elt_zero_wide:
- printf("XWINT (x%d, 0)", depth);
+ /* Convert result of XWINT to int for portability since some C
+ compilers won't do it and some will. */
+ printf ("(int) XWINT (x%d, 0)", depth);
break;
default:
abort ();
diff --git a/gcc/lcm.c b/gcc/lcm.c
index 7598b34d126..b850984b2f0 100644
--- a/gcc/lcm.c
+++ b/gcc/lcm.c
@@ -842,6 +842,7 @@ struct bb_info
/* These bitmaps are used for the LCM algorithm. */
+#ifdef OPTIMIZE_MODE_SWITCHING
static sbitmap *antic;
static sbitmap *transp;
static sbitmap *comp;
@@ -850,12 +851,16 @@ static sbitmap *insert;
static struct seginfo * new_seginfo PARAMS ((int, rtx, int, HARD_REG_SET));;
static void add_seginfo PARAMS ((struct bb_info *, struct seginfo *));
-static void make_preds_opaque PARAMS ((basic_block, int));
static void reg_dies PARAMS ((rtx, HARD_REG_SET));
static void reg_becomes_live PARAMS ((rtx, rtx, void *));
+static void make_preds_opaque PARAMS ((basic_block, int));
+#endif
+
+#ifdef OPTIMIZE_MODE_SWITCHING
/* This function will allocate a new BBINFO structure, initialized
with the FP_MODE, INSN, and basic block BB parameters. */
+
static struct seginfo *
new_seginfo (mode, insn, bb, regs_live)
int mode;
@@ -876,6 +881,7 @@ new_seginfo (mode, insn, bb, regs_live)
/* Add a seginfo element to the end of a list.
HEAD is a pointer to the list beginning.
INFO is the structure to be linked in. */
+
static void
add_seginfo (head, info)
struct bb_info *head;
@@ -899,6 +905,7 @@ add_seginfo (head, info)
denotes that a mode set is to be done on that edge.
J is the bit number in the bitmaps that corresponds to the entity that
we are currently handling mode-switching for. */
+
static void
make_preds_opaque (b, j)
basic_block b;
@@ -917,6 +924,7 @@ make_preds_opaque (b, j)
}
/* Record in LIVE that register REG died. */
+
static void
reg_dies (reg, live)
rtx reg;
@@ -938,6 +946,7 @@ reg_dies (reg, live)
/* Record in LIVE that register REG became live.
This is called via note_stores. */
+
static void
reg_becomes_live (reg, setter, live)
rtx reg;
@@ -961,6 +970,7 @@ reg_becomes_live (reg, setter, live)
SET_HARD_REG_BIT (* (HARD_REG_SET *) live, regno);
}
}
+#endif
/* Find all insns that need a particular mode
setting, and insert the necessary mode switches. */
diff --git a/gcc/mips-tfile.c b/gcc/mips-tfile.c
index abedec870b8..aaea9f4f425 100644
--- a/gcc/mips-tfile.c
+++ b/gcc/mips-tfile.c
@@ -1078,6 +1078,37 @@ typedef struct efdr {
static efdr_t init_file =
{
{ /* FDR structure */
+#ifdef __alpha
+ 0, /* adr: memory address of beginning of file */
+ 0, /* cbLineOffset: byte offset from header for this file ln's */
+ 0, /* cbLine: size of lines for this file */
+ 0, /* cbSs: number of bytes in the ss */
+ 0, /* rss: file name (of source, if known) */
+ 0, /* issBase: file's string space */
+ 0, /* isymBase: beginning of symbols */
+ 0, /* csym: count file's of symbols */
+ 0, /* ilineBase: file's line symbols */
+ 0, /* cline: count of file's line symbols */
+ 0, /* ioptBase: file's optimization entries */
+ 0, /* copt: count of file's optimization entries */
+ 0, /* ipdFirst: start of procedures for this file */
+ 0, /* cpd: count of procedures for this file */
+ 0, /* iauxBase: file's auxiliary entries */
+ 0, /* caux: count of file's auxiliary entries */
+ 0, /* rfdBase: index into the file indirect table */
+ 0, /* crfd: count file indirect entries */
+ langC, /* lang: language for this file */
+ 1, /* fMerge: whether this file can be merged */
+ 0, /* fReadin: true if read in (not just created) */
+#ifdef HOST_WORDS_BIG_ENDIAN
+ 1, /* fBigendian: if 1, compiled on big endian machine */
+#else
+ 0, /* fBigendian: if 1, compiled on big endian machine */
+#endif
+ 0, /* fTrim: whether the symbol table was trimmed */
+ GLEVEL_2, /* glevel: level this file was compiled with */
+ 0, /* reserved: reserved for future use */
+#else
0, /* adr: memory address of beginning of file */
0, /* rss: file name (of source, if known) */
0, /* issBase: file's string space */
@@ -1106,6 +1137,7 @@ static efdr_t init_file =
0, /* reserved: reserved for future use */
0, /* cbLineOffset: byte offset from header for this file ln's */
0, /* cbLine: size of lines for this file */
+#endif
},
(FDR *) 0, /* orig_fdr: original file header pointer */
@@ -2327,7 +2359,8 @@ get_tag (tag_start, tag_end_p1, indx, basic_type)
tag_ptr->same_name = hash_ptr->tag_ptr;
tag_ptr->basic_type = basic_type;
tag_ptr->indx = indx;
- tag_ptr->ifd = (indx == indexNil) ? -1 : cur_file_ptr->file_index;
+ tag_ptr->ifd = (indx == indexNil
+ ? (symint_t) -1 : cur_file_ptr->file_index);
tag_ptr->same_block = cur_tag_head->first_tag;
cur_tag_head->first_tag = tag_ptr;
@@ -4621,8 +4654,10 @@ copy_object __proto((void))
(st_t) eptr->asym.st,
(sc_t) eptr->asym.sc,
eptr->asym.value,
- (symint_t) ((eptr->asym.index == indexNil) ? indexNil : 0),
- ((long) ifd < orig_sym_hdr.ifdMax) ? remap_file_number[ ifd ] : ifd);
+ (eptr->asym.index == indexNil
+ ? (symint_t) indexNil : 0),
+ ((long) ifd < orig_sym_hdr.ifdMax
+ ? remap_file_number[ifd] : (int) ifd));
}
@@ -4774,8 +4809,9 @@ copy_object __proto((void))
remaining > 0;
remaining -= num_write)
{
- num_write =
- (remaining <= (int) sizeof (buffer)) ? remaining : sizeof (buffer);
+ num_write
+ = (remaining <= (int) sizeof (buffer))
+ ? remaining : (int) sizeof (buffer);
sys_read = fread ((PTR_T) buffer, 1, num_write, obj_in_stream);
if (sys_read <= 0)
pfatal_with_name (obj_in_name);
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 9ce0c926460..2898b49c870 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -4430,7 +4430,8 @@ init_one_libfunc (name)
{
if (ggc_p)
name = ggc_alloc_string (name, -1);
- return gen_rtx_SYMBOL_REF (Pmode, name);
+
+ return gen_rtx_SYMBOL_REF (Pmode, (char *) name);
}
/* Mark ARG (which is really an OPTAB *) for GC. */
diff --git a/gcc/reload.c b/gcc/reload.c
index ffad39973e7..0a51a28f882 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -4037,7 +4037,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
{
for (i = 0; i < n_reloads; i++)
{
- int first_num, type;
+ int first_num;
+ enum reload_type type;
switch (rld[i].when_needed)
{
diff --git a/gcc/reload1.c b/gcc/reload1.c
index f0aec4478d0..9b0b4d12ac0 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3173,6 +3173,7 @@ mark_not_eliminable (dest, x, data)
last call to set_initial_elim_offsets. This is used to catch cases
where something illegal happened during reload_as_needed that could
cause incorrect code to be generated if we did not check for it. */
+
static void
verify_initial_elim_offsets ()
{
diff --git a/gcc/sbitmap.c b/gcc/sbitmap.c
index 0046c57736e..335659d9b35 100644
--- a/gcc/sbitmap.c
+++ b/gcc/sbitmap.c
@@ -540,7 +540,8 @@ dump_sbitmap (file, bmap)
FILE *file;
sbitmap bmap;
{
- int i,j,n;
+ int i, n;
+ unsigned int j;
int set_size = bmap->size;
int total_bits = bmap->n_bits;
@@ -551,7 +552,8 @@ dump_sbitmap (file, bmap)
{
if (n != 0 && n % 10 == 0)
fprintf (file, " ");
- fprintf (file, "%d", (bmap->elms[i] & (1L << j)) != 0);
+ fprintf (file, "%d",
+ (bmap->elms[i] & ((SBITMAP_ELT_TYPE) 1 << j)) != 0);
}
}
fprintf (file, "\n");
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 48fa75743c0..115b92c8d7b 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -234,7 +234,7 @@ unroll_loop (loop, insn_count, end_insert_before, strength_reduce_p)
{
int i, j;
unsigned HOST_WIDE_INT temp;
- int unroll_number;
+ int unroll_number = 1;
rtx copy_start, copy_end;
rtx insn, sequence, pattern, tem;
int max_labelno, max_insnno;
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 76d91f71f2f..bfce0d8fef3 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -2539,7 +2539,7 @@ compare_constant_1 (exp, p)
if (flag_writable_strings)
return 0;
- if (*p++ != TYPE_MODE (TREE_TYPE (exp)))
+ if ((enum machine_mode) *p++ != TYPE_MODE (TREE_TYPE (exp)))
return 0;
strp = TREE_STRING_POINTER (exp);