summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/extra-semi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaCXX/extra-semi.cpp')
-rw-r--r--clang/test/SemaCXX/extra-semi.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/extra-semi.cpp b/clang/test/SemaCXX/extra-semi.cpp
new file mode 100644
index 00000000000..be7435a4068
--- /dev/null
+++ b/clang/test/SemaCXX/extra-semi.cpp
@@ -0,0 +1,29 @@
+// RUN: %clang_cc1 -verify -std=c++98 -Wextra-semi %s
+// RUN: %clang_cc1 -verify -std=c++03 -Wextra-semi %s
+// RUN: %clang_cc1 -verify -std=c++11 -Wextra-semi %s
+// RUN: %clang_cc1 -verify -std=c++17 -Wextra-semi %s
+// RUN: %clang_cc1 -verify -std=c++2a -Wextra-semi %s
+// RUN: %clang_cc1 -verify -Weverything -Wno-c++98-compat %s
+// RUN: %clang_cc1 -verify -Weverything -Wno-c++98-compat-pedantic -Wc++98-compat-extra-semi %s
+
+// Last RUN line checks that c++98-compat-extra-semi can still be re-enabled.
+
+void F();
+
+void F(){}
+;
+#if __cplusplus < 201103L
+// expected-warning@-2{{extra ';' outside of a function is a C++11 extension}}
+#else
+// expected-warning@-4{{extra ';' outside of a function is incompatible with C++98}}
+#endif
+
+namespace ns {
+class C {
+ void F() const;
+};
+}
+; // expected-warning {{extra ';' outside of a function is}}
+
+void ns::C::F() const {}
+; // expected-warning {{extra ';' outside of a function is}}
OpenPOWER on IntegriCloud