diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/diagnostics/switch-duplicate-case.slang | 33 | ||||
| -rw-r--r-- | tests/diagnostics/switch-multiple-defaults.slang | 14 |
2 files changed, 47 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; +} diff --git a/tests/diagnostics/switch-multiple-defaults.slang b/tests/diagnostics/switch-multiple-defaults.slang new file mode 100644 index 000000000..bf164dd57 --- /dev/null +++ b/tests/diagnostics/switch-multiple-defaults.slang @@ -0,0 +1,14 @@ +//TEST:SIMPLE(filecheck=CHECK): + +// Test to evaluate the behavior of unreachable code blocks within a switch statement. A switch statement with multiple default cases is not allowed and should throw an error + +void test() +{ + switch (0) + { + default: break; + // CHECK: ([[# @LINE+1]]): error 30600: {{.*}} + default: break; + } + return; +} |
