42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// 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
 |