authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-02-22 19:26:19+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-02-22 19:26:19+02:00
log011bc1b84fc0ea1147cc96ccd30962bc38b65e02
tree957eb81107764d89d864801ca9cd5e11da11a4ae
parentce9b3ee0f908a776b67a5d7bedc2075559e7643c
signaturelock-open Commit is signed but in an unrecognized format.

translate-c: switch default should have an empty block not break


2 files changed, 8 insertions(+), 1 deletions(-)

src/translate_c.zig+1-1
...@@ -2276,7 +2276,7 @@ fn transSwitch(...@@ -2276,7 +2276,7 @@ fn transSwitch(
2276 }2276 }
22772277
2278 if (!has_default) {2278 if (!has_default) {
2279 const else_prong = try Tag.switch_else.create(c.arena, Tag.@"break".init());2279 const else_prong = try Tag.switch_else.create(c.arena, Tag.empty_block.init());
2280 try cases.append(else_prong);2280 try cases.append(else_prong);
2281 }2281 }
22822282
test/translate_c.zig+7
...@@ -2055,6 +2055,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -2055,6 +2055,9 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
2055 \\ return;2055 \\ return;
2056 \\ }2056 \\ }
2057 \\ case 6:2057 \\ case 6:
2058 \\ switch (res) {
2059 \\ case 9: break;
2060 \\ }
2058 \\ res = 1;2061 \\ res = 1;
2059 \\ return;2062 \\ return;
2060 \\ }2063 \\ }
...@@ -2084,6 +2087,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void {...@@ -2084,6 +2087,10 @@ pub fn addCases(cases: *tests.TranslateCContext) void {
2084 \\ }2087 \\ }
2085 \\ },2088 \\ },
2086 \\ @as(c_int, 6) => {2089 \\ @as(c_int, 6) => {
2090 \\ switch (res) {
2091 \\ @as(c_int, 9) => {},
2092 \\ else => {},
2093 \\ }
2087 \\ res = 1;2094 \\ res = 1;
2088 \\ return;2095 \\ return;
2089 \\ },2096 \\ },