commit 011bc1b84fc0ea1147cc96ccd30962bc38b65e02 (tree)
parent ce9b3ee0f908a776b67a5d7bedc2075559e7643c
Author: Veikka Tuominen <git@vexu.eu>
Date: Mon, 22 Feb 2021 19:26:19 +0200
translate-c: switch default should have an empty block not break
Diffstat:
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/translate_c.zig b/src/translate_c.zig
@@ -2276,7 +2276,7 @@ fn transSwitch(
}
if (!has_default) {
- const else_prong = try Tag.switch_else.create(c.arena, Tag.@"break".init());
+ const else_prong = try Tag.switch_else.create(c.arena, Tag.empty_block.init());
try cases.append(else_prong);
}
diff --git a/test/translate_c.zig b/test/translate_c.zig
@@ -2055,6 +2055,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
\\ return;
\\ }
\\ case 6:
+ \\ switch (res) {
+ \\ case 9: break;
+ \\ }
\\ res = 1;
\\ return;
\\ }
@@ -2084,6 +2087,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
\\ }
\\ },
\\ @as(c_int, 6) => {
+ \\ switch (res) {
+ \\ @as(c_int, 9) => {},
+ \\ else => {},
+ \\ }
\\ res = 1;
\\ return;
\\ },