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; \\ },