Use Expr::Evaluate for case statements. Fixes PR2525
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59881 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/switch.c b/test/Sema/switch.c
index 0e39175..fd8e046 100644
--- a/test/Sema/switch.c
+++ b/test/Sema/switch.c
@@ -28,3 +28,25 @@
switch (0);
}
+extern int g();
+
+void test4()
+{
+ switch (1) {
+ case 0 && g():
+ case 1 || g():
+ break;
+ }
+
+ switch(1) {
+ case g(): // expected-error {{case label does not reduce to an integer constant}}
+ case 0 ... g(): // expected-error {{case label does not reduce to an integer constant}}
+ break;
+ }
+
+ switch (1) {
+ case 0 && g() ... 1 || g():
+ break;
+ }
+}
+