| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // RUN: %clang_cc1 -fsyntax-only -pedantic -verify -DPEDANTIC %s
- // RUN: %clang_cc1 -fsyntax-only -Wextra-semi -verify %s
- // RUN: %clang_cc1 -fsyntax-only -Wextra-semi -verify -std=c++11 %s
- // RUN: cp %s %t
- // RUN: %clang_cc1 -x c++ -Wextra-semi -fixit %t
- // RUN: %clang_cc1 -x c++ -Wextra-semi -Werror %t
- class A {
- void A1();
- void A2() { };
- #ifndef PEDANTIC
- // This warning is only produced if we specify -Wextra-semi, and not if only
- // -pedantic is specified, since one semicolon is technically permitted.
- // expected-warning@-4{{extra ';' after member function definition}}
- #endif
- void A2b() { };; // expected-warning{{extra ';' after member function definition}}
- ; // expected-warning{{extra ';' inside a class}}
- void A2c() { }
- ;
- #ifndef PEDANTIC
- // expected-warning@-2{{extra ';' after member function definition}}
- #endif
- void A3() { }; ;; // expected-warning{{extra ';' after member function definition}}
- ;;;;;;; // expected-warning{{extra ';' inside a class}}
- ; // expected-warning{{extra ';' inside a class}}
- ; ;; ; ;;; // expected-warning{{extra ';' inside a class}}
- ; ; ; ; ;; // expected-warning{{extra ';' inside a class}}
- void A4();
- };
- union B {
- int a1;
- int a2;; // expected-warning{{extra ';' inside a union}}
- };
- ;
- ; ;;
- #if __cplusplus < 201103L
- // expected-warning@-3{{extra ';' outside of a function is a C++11 extension}}
- // expected-warning@-3{{extra ';' outside of a function is a C++11 extension}}
- #endif
|