From 5e09fa0380b52c96fba49223b5c4ec16b958220e Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Tue, 11 Dec 2007 21:41:18 +0000 Subject: [PATCH] Do default promotion on the expression of switch()es. [r18683] --- parser.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/parser.c b/parser.c index fb7ce4e..303bef6 100644 --- a/parser.c +++ b/parser.c @@ -4914,7 +4914,9 @@ static statement_t *parse_switch(void) statement->statement.source_position = token.source_position; expect('('); - statement->expression = parse_expression(); + expression_t *const expr = parse_expression(); + type_t *const type = promote_integer(expr->base.datatype); + statement->expression = create_implicit_cast(expr, type); expect(')'); statement->body = parse_statement(); -- 2.20.1