diff options
Diffstat (limited to 'tests/diagnostics/switch-duplicate-case.slang')
| -rw-r--r-- | tests/diagnostics/switch-duplicate-case.slang | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/diagnostics/switch-duplicate-case.slang b/tests/diagnostics/switch-duplicate-case.slang new file mode 100644 index 000000000..2d55dc4c8 --- /dev/null +++ b/tests/diagnostics/switch-duplicate-case.slang @@ -0,0 +1,33 @@ +//TEST:SIMPLE(filecheck=CHECK): + +// Tests to evaluate the behavior of code blocks within a switch statement. A switch statement with duplicate cases with same values is not allowed and should throw an error + +enum class Cases +{ + A, + B +}; + +void test1(Cases c) +{ + switch (c) + { + case Cases::A: break; + case Cases::B: break; + // CHECK: ([[# @LINE+1]]): error 30601: {{.*}} + case Cases::A: break; + } + return; +} + +void test2() +{ + switch (0) + { + case 1: break; + case 2: break; + // CHECK: ([[# @LINE+1]]): error 30601: {{.*}} + case 1: break; + } + return; +} |
