Commit aefdd5ab by Jeffrey A Law Committed by Jeff Law

c-lex.c (yylex): Initialize traditional_type, ansi_type and type.

        * c-lex.c (yylex): Initialize traditional_type, ansi_type and type.
        * caller-save.c (insert_save_restore): Initialize pat, code and
        numregs.
        * emit-rtl.c (push_to_sequence): Initialize top.
        (push_topmost_sequence): Likewise.
        * genattrtab.c (simplify_by_exploding): Initialize defval.
        * profile.c (branch_prob): Initialize dest.
        * rtl.h (note_stores): Remove duplicate prototype.
        (GEN_INT): Re-instate cast of second arg to HOST_WIDE_INT.
Fix some warnings.
        * cplus-dem.c (gnu_special): Don't get confused by .<digits>
        strings that are not actually lengths.
A change from libiberty that didn't make it into the gcc copy.

From-SVN: r18942
parent 729da3f5
Wed Apr 1 22:26:22 1998 Jeffrey A Law (law@cygnus.com) Wed Apr 1 22:26:22 1998 Jeffrey A Law (law@cygnus.com)
* c-lex.c (yylex): Initialize traditional_type, ansi_type and type.
* caller-save.c (insert_save_restore): Initialize pat, code and
numregs.
* emit-rtl.c (push_to_sequence): Initialize top.
(push_topmost_sequence): Likewise.
* genattrtab.c (simplify_by_exploding): Initialize defval.
* profile.c (branch_prob): Initialize dest.
* rtl.h (note_stores): Remove duplicate prototype.
(GEN_INT): Re-instate cast of second arg to HOST_WIDE_INT.
* cplus-dem.c (gnu_special): Don't get confused by .<digits>
strings that are not actually lengths.
* genattrtab.c: Make generated file use system.h, instead of * genattrtab.c: Make generated file use system.h, instead of
including stdio.h, etc directly. including stdio.h, etc directly.
* genextract.c, genopinit.c, genoutput.c: Likewise. * genextract.c, genopinit.c, genoutput.c: Likewise.
......
...@@ -1674,6 +1674,7 @@ yylex () ...@@ -1674,6 +1674,7 @@ yylex ()
int spec_imag = 0; int spec_imag = 0;
int bytes, warn, i; int bytes, warn, i;
traditional_type = ansi_type = type = NULL_TREE;
while (1) while (1)
{ {
if (c == 'u' || c == 'U') if (c == 'u' || c == 'U')
......
...@@ -640,9 +640,9 @@ insert_save_restore (insn, save_p, regno, insn_mode, maxrestore) ...@@ -640,9 +640,9 @@ insert_save_restore (insn, save_p, regno, insn_mode, maxrestore)
enum machine_mode insn_mode; enum machine_mode insn_mode;
int maxrestore; int maxrestore;
{ {
rtx pat; rtx pat = NULL_RTX;
enum insn_code code; enum insn_code code = CODE_FOR_nothing;
int numregs; int numregs = 0;
/* A common failure mode if register status is not correct in the RTL /* A common failure mode if register status is not correct in the RTL
is for this routine to be called with a REGNO we didn't expect to is for this routine to be called with a REGNO we didn't expect to
......
...@@ -1901,6 +1901,15 @@ gnu_special (work, mangled, declp) ...@@ -1901,6 +1901,15 @@ gnu_special (work, mangled, declp)
if (isdigit(*mangled[0])) if (isdigit(*mangled[0]))
{ {
n = consume_count(mangled); n = consume_count(mangled);
/* We may be seeing a too-large size, or else a
".<digits>" indicating a static local symbol. In
any case, declare victory and move on; *don't* try
to use n to allocate. */
if (n >= strlen (*mangled))
{
success = 1;
break;
}
} }
else else
{ {
......
...@@ -3112,7 +3112,7 @@ push_to_sequence (first) ...@@ -3112,7 +3112,7 @@ push_to_sequence (first)
void void
push_topmost_sequence () push_topmost_sequence ()
{ {
struct sequence_stack *stack, *top; struct sequence_stack *stack, *top = NULL;
start_sequence (); start_sequence ();
...@@ -3130,7 +3130,7 @@ push_topmost_sequence () ...@@ -3130,7 +3130,7 @@ push_topmost_sequence ()
void void
pop_topmost_sequence () pop_topmost_sequence ()
{ {
struct sequence_stack *stack, *top; struct sequence_stack *stack, *top = NULL;
for (stack = sequence_stack; stack; stack = stack->next) for (stack = sequence_stack; stack; stack = stack->next)
top = stack; top = stack;
......
...@@ -3561,7 +3561,7 @@ static rtx ...@@ -3561,7 +3561,7 @@ static rtx
simplify_by_exploding (exp) simplify_by_exploding (exp)
rtx exp; rtx exp;
{ {
rtx list = 0, link, condexp, defval; rtx list = 0, link, condexp, defval = NULL_RTX;
struct dimension *space; struct dimension *space;
rtx *condtest, *condval; rtx *condtest, *condval;
int i, j, total, ndim = 0; int i, j, total, ndim = 0;
......
...@@ -618,7 +618,7 @@ branch_prob (f, dump_file) ...@@ -618,7 +618,7 @@ branch_prob (f, dump_file)
register int i; register int i;
int fall_through = 0; int fall_through = 0;
struct adj_list *arcptr; struct adj_list *arcptr;
int dest; int dest = NULL_RTX;
/* Block 0 always falls through to block 1. */ /* Block 0 always falls through to block 1. */
num_arcs = 0; num_arcs = 0;
......
...@@ -856,7 +856,6 @@ extern rtx single_set PROTO((rtx)); ...@@ -856,7 +856,6 @@ extern rtx single_set PROTO((rtx));
extern rtx find_last_value PROTO((rtx, rtx *, rtx)); extern rtx find_last_value PROTO((rtx, rtx *, rtx));
extern int refers_to_regno_p PROTO((int, int, rtx, rtx *)); extern int refers_to_regno_p PROTO((int, int, rtx, rtx *));
extern int reg_overlap_mentioned_p PROTO((rtx, rtx)); extern int reg_overlap_mentioned_p PROTO((rtx, rtx));
extern void note_stores PROTO((rtx, void (*)()));
extern rtx reg_set_last PROTO((rtx, rtx)); extern rtx reg_set_last PROTO((rtx, rtx));
extern int rtx_equal_p PROTO((rtx, rtx)); extern int rtx_equal_p PROTO((rtx, rtx));
extern int dead_or_set_p PROTO((rtx, rtx)); extern int dead_or_set_p PROTO((rtx, rtx));
...@@ -951,7 +950,9 @@ extern rtx static_chain_incoming_rtx; ...@@ -951,7 +950,9 @@ extern rtx static_chain_incoming_rtx;
extern rtx gen_rtx_CONST_INT PROTO((enum machine_mode, HOST_WIDE_INT)); extern rtx gen_rtx_CONST_INT PROTO((enum machine_mode, HOST_WIDE_INT));
extern rtx gen_rtx_REG PROTO((enum machine_mode, int)); extern rtx gen_rtx_REG PROTO((enum machine_mode, int));
#define GEN_INT(N) gen_rtx_CONST_INT (VOIDmode, (N)) /* We need the cast here to ensure that we get the same result both with
and without prototypes. */
#define GEN_INT(N) gen_rtx_CONST_INT (VOIDmode, (HOST_WIDE_INT) (N))
/* If HARD_FRAME_POINTER_REGNUM is defined, then a special dummy reg /* If HARD_FRAME_POINTER_REGNUM is defined, then a special dummy reg
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment