]> granicus.if.org Git - clang/commitdiff
Add a test for C++ [stmt.label]p1, from Sashan!
authorDouglas Gregor <dgregor@apple.com>
Mon, 29 Nov 2010 16:37:40 +0000 (16:37 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 29 Nov 2010 16:37:40 +0000 (16:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120291 91177308-0d34-0410-b5e6-96231b3b80d8

test/CXX/stmt.stmt/stmt.label/p1.cpp [new file with mode: 0644]

diff --git a/test/CXX/stmt.stmt/stmt.label/p1.cpp b/test/CXX/stmt.stmt/stmt.label/p1.cpp
new file mode 100644 (file)
index 0000000..f2ace35
--- /dev/null
@@ -0,0 +1,25 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+
+void f()
+{
+  int x = 0;
+  goto label1;
+
+label1: // expected-note{{previous definition is here}}
+  x = 1;
+  goto label2; // expected-error{{use of undeclared label 'label2'}}
+
+label1: // expected-error{{redefinition of label ''label1''}}
+  x = 2;
+}
+
+void h()
+{
+  int x = 0;
+  switch (x)
+  {
+    case 1:;
+    default:; // expected-error{{multiple default labels in one switch}}
+    default:; // expected-note{{previous case defined here}}
+  }
+}