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;
+  }
+}
+