forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			23 lines
		
	
	
		
			572 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			572 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 %s -verify -Wconversion
 | 
						|
 | 
						|
#define P(X) _Pragma(#X)
 | 
						|
#define V(X) X
 | 
						|
 | 
						|
#define X \
 | 
						|
  P(clang diagnostic push) \
 | 
						|
  P(clang diagnostic ignored "-Wconversion") \
 | 
						|
  ) = 1.2; \
 | 
						|
  P(clang diagnostic pop)
 | 
						|
 | 
						|
void f() {
 | 
						|
  int a = 1.2; // expected-warning {{changes value}}
 | 
						|
 | 
						|
  // Note, we intentionally enter a tentatively-parsed context here to trigger
 | 
						|
  // regular use of lookahead. This would go wrong if _Pragma checking in macro
 | 
						|
  // argument pre-expansion also tries to use token lookahead.
 | 
						|
  int (b
 | 
						|
  V(X)
 | 
						|
 | 
						|
  int c = 1.2; // expected-warning {{changes value}}
 | 
						|
}
 |