Commit 3afdfae8 by Tom Tromey Committed by Tom Tromey

* check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.

From-SVN: r47860
parent d7a5e253
2001-12-10 Tom Tromey <tromey@redhat.com>
* check-init.c (check_init) [SWITCH_EXPR]: Use SWITCH_HAS_DEFAULT.
Mon Dec 10 06:09:57 2001 Douglas B. Rupp <rupp@gnat.com> Mon Dec 10 06:09:57 2001 Douglas B. Rupp <rupp@gnat.com>
* Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION). * Make-lang.in (jvspec.o): Add $(OUTPUT_OPTION).
......
...@@ -429,9 +429,6 @@ struct alternatives ...@@ -429,9 +429,6 @@ struct alternatives
struct alternatives * alternatives = NULL; struct alternatives * alternatives = NULL;
/* True if we've seen a DEFAULT_EXPR for the current SWITCH_EXPR. */
static int current_switch_has_default;
/* Begin handling a control flow branch. /* Begin handling a control flow branch.
BEFORE is the state of [un]assigned variables on entry. BEFORE is the state of [un]assigned variables on entry.
CURRENT is a struct alt to manage the branch alternatives. */ CURRENT is a struct alt to manage the branch alternatives. */
...@@ -689,9 +686,7 @@ check_init (exp, before) ...@@ -689,9 +686,7 @@ check_init (exp, before)
case SWITCH_EXPR: case SWITCH_EXPR:
{ {
struct alternatives alt; struct alternatives alt;
int saved_current_switch_has_default = current_switch_has_default;
word buf[2]; word buf[2];
current_switch_has_default = 0;
check_init (TREE_OPERAND (exp, 0), before); check_init (TREE_OPERAND (exp, 0), before);
BEGIN_ALTERNATIVES (before, alt); BEGIN_ALTERNATIVES (before, alt);
alt.saved = ALLOC_BUFFER(buf, num_current_words); alt.saved = ALLOC_BUFFER(buf, num_current_words);
...@@ -699,19 +694,14 @@ check_init (exp, before) ...@@ -699,19 +694,14 @@ check_init (exp, before)
alt.block = exp; alt.block = exp;
check_init (TREE_OPERAND (exp, 1), before); check_init (TREE_OPERAND (exp, 1), before);
done_alternative (before, &alt); done_alternative (before, &alt);
if (! current_switch_has_default) if (! SWITCH_HAS_DEFAULT (exp))
{ done_alternative (alt.saved, &alt);
done_alternative (alt.saved, &alt);
}
FREE_BUFFER(alt.saved, buf); FREE_BUFFER(alt.saved, buf);
END_ALTERNATIVES (before, alt); END_ALTERNATIVES (before, alt);
current_switch_has_default = saved_current_switch_has_default;
return; return;
} }
case DEFAULT_EXPR:
current_switch_has_default = 1;
/* .. then fall through ... */
case CASE_EXPR: case CASE_EXPR:
case DEFAULT_EXPR:
{ {
int i; int i;
struct alternatives *alt = alternatives; struct alternatives *alt = alternatives;
......
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