From f4997f4d3a17361c4a6e7beaec96f76caecd1e51 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 12 Dec 2007 01:50:09 +0000 Subject: [PATCH] add missing test for default [r18694] --- parser.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/parser.c b/parser.c index 628ac66..bac60ce 100644 --- a/parser.c +++ b/parser.c @@ -4887,6 +4887,18 @@ static statement_t *parse_default_statement(void) statement->base.source_position = token.source_position; expect(':'); + if (current_switch != NULL) { + /* link all cases into the switch statement */ + if (current_switch->last_case == NULL) { + current_switch->first_case = + current_switch->last_case = &statement->case_label; + } else { + current_switch->last_case->next = &statement->case_label; + } + } else { + errorf(statement->base.source_position, + "'default' label not within a switch statement"); + } statement->label.label_statement = parse_statement(); return statement; -- 2.20.1