| 1 | // RUN: %clang_cc1 -verify -std=c++98 -Wextra-semi %s |
| 2 | // RUN: %clang_cc1 -verify -std=c++03 -Wextra-semi %s |
| 3 | // RUN: %clang_cc1 -verify -std=c++11 -Wextra-semi %s |
| 4 | // RUN: %clang_cc1 -verify -std=c++17 -Wextra-semi %s |
| 5 | // RUN: %clang_cc1 -verify -std=c++2a -Wextra-semi %s |
| 6 | // RUN: %clang_cc1 -verify -Weverything -Wno-c++98-compat %s |
| 7 | // RUN: %clang_cc1 -verify -Weverything -Wno-c++98-compat-pedantic -Wc++98-compat-extra-semi %s |
| 8 | |
| 9 | // Last RUN line checks that c++98-compat-extra-semi can still be re-enabled. |
| 10 | |
| 11 | void F(); |
| 12 | |
| 13 | void F(){} |
| 14 | ; |
| 15 | #if __cplusplus < 201103L |
| 16 | // expected-warning@-2{{extra ';' outside of a function is a C++11 extension}} |
| 17 | #else |
| 18 | // expected-warning@-4{{extra ';' outside of a function is incompatible with C++98}} |
| 19 | #endif |
| 20 | |
| 21 | namespace ns { |
| 22 | class C { |
| 23 | void F() const; |
| 24 | }; |
| 25 | } |
| 26 | ; // expected-warning {{extra ';' outside of a function is}} |
| 27 | |
| 28 | void ns::C::F() const {} |
| 29 | ; // expected-warning {{extra ';' outside of a function is}} |
| 30 | |