diff options
author | herman ten brugge <hermantenbrugge@home.nl> | 2024-01-16 07:51:56 +0100 |
---|---|---|
committer | herman ten brugge <hermantenbrugge@home.nl> | 2024-01-16 07:51:56 +0100 |
commit | bbe2e5a421e0bcc5f386302e5120e1de60f01407 (patch) | |
tree | 8219c8aa2030d314f3b7246d6c81f0e2f2d9039e | |
parent | 04365dd4c91f78361c7cf3169fe5fab3ccb9bfbf (diff) |
Allow declarations in case statement
This now works:
case 1:
int z = 123;
break;
-rw-r--r-- | tccgen.c | 2 | ||||
-rw-r--r-- | tests/tests2/06_case.c | 3 |
2 files changed, 3 insertions, 2 deletions
@@ -7266,7 +7266,7 @@ again: if (is_expr) { vpop(); gexpr(); - } else { + } else if (!decl(VT_JMP)) { gexpr(); vpop(); } diff --git a/tests/tests2/06_case.c b/tests/tests2/06_case.c index c0191e2..75b8d45 100644 --- a/tests/tests2/06_case.c +++ b/tests/tests2/06_case.c @@ -14,7 +14,8 @@ int main() break; case 2: - printf("%d\n", 2); + int a = 2; + printf("%d\n", a); break; default: |