forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 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}}
 | |
| #elif !defined(PEDANTIC)
 | |
| // expected-warning@-6{{extra ';' outside of a function is incompatible with C++98}}
 | |
| // expected-warning@-6{{extra ';' outside of a function is incompatible with C++98}}
 | |
| #endif
 |