diff options
| author | gingerBill <bill@gingerbill.org> | 2019-03-06 16:23:50 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2019-03-06 16:23:50 +0000 |
| commit | 15d3f4c190abbeaef2cd6920d16aacaf71c35fe1 (patch) | |
| tree | d9155251f3a95a9da92b4d23c6412000160e7a2c /src/check_stmt.cpp | |
| parent | 1b3ec66fa2cf6f9a8f15d9c1988db677ac1a6fa6 (diff) | |
Allow implicit selector expressions in switch statements
Diffstat (limited to 'src/check_stmt.cpp')
| -rw-r--r-- | src/check_stmt.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index c861cfdf3..cead61ce8 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -686,14 +686,14 @@ void check_switch_stmt(CheckerContext *ctx, Ast *node, u32 mod_flags) { ast_node(ie, BinaryExpr, expr); Operand lhs = {}; Operand rhs = {}; - check_expr(ctx, &lhs, ie->left); + check_expr_with_type_hint(ctx, &lhs, ie->left, x.type); if (x.mode == Addressing_Invalid) { continue; } if (lhs.mode == Addressing_Invalid) { continue; } - check_expr(ctx, &rhs, ie->right); + check_expr_with_type_hint(ctx, &rhs, ie->right, x.type); if (rhs.mode == Addressing_Invalid) { continue; } @@ -732,7 +732,7 @@ void check_switch_stmt(CheckerContext *ctx, Ast *node, u32 mod_flags) { if (is_type_typeid(x.type)) { check_expr_or_type(ctx, &y, expr, x.type); } else { - check_expr(ctx, &y, expr); + check_expr_with_type_hint(ctx, &y, expr, x.type); } if (x.mode == Addressing_Invalid || |