zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/translate_c.zig | 2+-
Mtest/translate_c.zig | 7+++++++
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; \\ },