Changed from FileCheck to clang -cc1 -verify
Hi rsmith,
http://llvm-reviews.chandlerc.com/D55
CHANGE SINCE LAST DIFF
http://llvm-reviews.chandlerc.com/D55?vs=148&id=149#toc
Files:
tools/clang/test/PCH/cxx11-statement-attributes.cpp
tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
Index: tools/clang/test/PCH/cxx11-statement-attributes.cpp
===================================================================
--- tools/clang/test/PCH/cxx11-statement-attributes.cpp
+++ tools/clang/test/PCH/cxx11-statement-attributes.cpp
@@ -0,0 +1,12 @@
+// Sanity check.
+// RUN: %clang_cc1 -include %S/Inputs/cxx11-statement-attributes.h -std=c++11
-Wimplicit-fallthrough -fsyntax-only %s -o - -verify
+// Run the same tests, this time with the attributes loaded from the PCH file.
+// RUN: %clang_cc1 -x c++-header -emit-pch -std=c++11 -o %t
%S/Inputs/cxx11-statement-attributes.h
+// RUN: %clang_cc1 -include-pch %t -std=c++11 -Wimplicit-fallthrough
-fsyntax-only %s -o - -verify
+
+// Warning from Inputs/cxx11-statement-attributes.h:
+// expected-warning@10 {{fallthrough annotation does not directly precede
switch label}}
+
+void g(int n) {
+ f<1>(n); // expected-note {{in instantiation of function template
specialization 'f<1>' requested here}}
+}
Index: tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
===================================================================
--- tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
+++ tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
@@ -0,0 +1,14 @@
+// To be used with cxx11-statement-attributes.cpp.
+template<const int N>
+int f(int n) {
+ switch (n * N) {
+ case 0:
+ n += 15;
+ [[clang::fallthrough]]; // This shouldn't generate a warning.
+ case 1:
+ n += 20;
+ [[clang::fallthrough]]; // This should generate a warning: "fallthrough
annotation does not directly precede switch label".
+ break;
+ }
+ return n;
+}
Index: tools/clang/test/PCH/cxx11-statement-attributes.cpp
===================================================================
--- tools/clang/test/PCH/cxx11-statement-attributes.cpp
+++ tools/clang/test/PCH/cxx11-statement-attributes.cpp
@@ -0,0 +1,12 @@
+// Sanity check.
+// RUN: %clang_cc1 -include %S/Inputs/cxx11-statement-attributes.h -std=c++11 -Wimplicit-fallthrough -fsyntax-only %s -o - -verify
+// Run the same tests, this time with the attributes loaded from the PCH file.
+// RUN: %clang_cc1 -x c++-header -emit-pch -std=c++11 -o %t %S/Inputs/cxx11-statement-attributes.h
+// RUN: %clang_cc1 -include-pch %t -std=c++11 -Wimplicit-fallthrough -fsyntax-only %s -o - -verify
+
+// Warning from Inputs/cxx11-statement-attributes.h:
+// expected-warning@10 {{fallthrough annotation does not directly precede switch label}}
+
+void g(int n) {
+ f<1>(n); // expected-note {{in instantiation of function template specialization 'f<1>' requested here}}
+}
Index: tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
===================================================================
--- tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
+++ tools/clang/test/PCH/Inputs/cxx11-statement-attributes.h
@@ -0,0 +1,14 @@
+// To be used with cxx11-statement-attributes.cpp.
+template<const int N>
+int f(int n) {
+ switch (n * N) {
+ case 0:
+ n += 15;
+ [[clang::fallthrough]]; // This shouldn't generate a warning.
+ case 1:
+ n += 20;
+ [[clang::fallthrough]]; // This should generate a warning: "fallthrough annotation does not directly precede switch label".
+ break;
+ }
+ return n;
+}
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits