forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -Wall -Wunused-macros -Wunused-parameter -Wno-uninitialized -verify %s
 | |
| 
 | |
| // rdar://8365684
 | |
| struct S {
 | |
|     void m1() { int b; while (b==b); } // expected-warning {{always evaluates to true}}
 | |
| 
 | |
| #pragma clang diagnostic push
 | |
| #pragma clang diagnostic ignored "-Wtautological-compare"
 | |
|     void m2() { int b; while (b==b); }
 | |
| #pragma clang diagnostic pop
 | |
| 
 | |
|     void m3() { int b; while (b==b); } // expected-warning {{always evaluates to true}}
 | |
| };
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| #pragma clang diagnostic push
 | |
| #pragma clang diagnostic ignored "-Wtautological-compare"
 | |
| template <typename T>
 | |
| struct TS {
 | |
|     void m() { T b; while (b==b); }
 | |
| };
 | |
| #pragma clang diagnostic pop
 | |
| 
 | |
| void f() {
 | |
|     TS<int> ts;
 | |
|     ts.m();
 | |
| }
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| #define UNUSED_MACRO1 // expected-warning {{macro is not used}}
 | |
| 
 | |
| #pragma clang diagnostic push
 | |
| #pragma clang diagnostic ignored "-Wunused-macros"
 | |
| #define UNUSED_MACRO2
 | |
| #pragma clang diagnostic pop
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| #pragma clang diagnostic push
 | |
| #pragma clang diagnostic ignored "-Wreturn-type"
 | |
| int g() { }
 | |
| #pragma clang diagnostic pop
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| void ww(
 | |
| #pragma clang diagnostic push
 | |
| #pragma clang diagnostic ignored "-Wunused-parameter"
 | |
|         int x,
 | |
| #pragma clang diagnostic pop
 | |
|         int y) // expected-warning {{unused}}
 | |
| {
 | |
| }
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| struct S2 {
 | |
|     int x, y;
 | |
|     S2() : 
 | |
| #pragma clang diagnostic push
 | |
| #pragma clang diagnostic ignored "-Wreorder"
 | |
|     y(),
 | |
|     x()
 | |
| #pragma clang diagnostic pop
 | |
|     {}
 | |
| };
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| // rdar://8790245
 | |
| #define MYMACRO \
 | |
|     _Pragma("clang diagnostic push") \
 | |
|     _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") \
 | |
|     _Pragma("clang diagnostic pop")
 | |
| MYMACRO
 | |
| #undef MYMACRO
 | |
| 
 | |
| //------------------------------------------------------------------------------
 |