| // 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}} |