aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2021-02-22 19:26:19 +0200
committerVeikka Tuominen <git@vexu.eu>2021-02-22 19:26:19 +0200
commit011bc1b84fc0ea1147cc96ccd30962bc38b65e02 (patch)
tree957eb81107764d89d864801ca9cd5e11da11a4ae
parentce9b3ee0f908a776b67a5d7bedc2075559e7643c (diff)
downloadzig-011bc1b84fc0ea1147cc96ccd30962bc38b65e02.tar.gz
zig-011bc1b84fc0ea1147cc96ccd30962bc38b65e02.zip
translate-c: switch default should have an empty block not break
-rw-r--r--src/translate_c.zig2
-rw-r--r--test/translate_c.zig7
2 files changed, 8 insertions, 1 deletions
diff --git a/src/translate_c.zig b/src/translate_c.zig
index dc13e5e380..e3debc01a0 100644
--- 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
index fe89e073c9..2e99bd8dd6 100644
--- 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;
\\ },