forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			35 lines
		
	
	
		
			594 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			594 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s 
 | |
| 
 | |
| void choice(int);
 | |
| int choice(bool);
 | |
| 
 | |
| void test() {
 | |
|   // Result of ! must be type bool.
 | |
|   int i = choice(!1);
 | |
| }
 | |
| 
 | |
| // rdar://8018252
 | |
| void f0() {
 | |
|   extern void f0_1(int*);
 | |
|   register int x;
 | |
|   f0_1(&x);
 | |
| }
 | |
| 
 | |
| namespace test1 {
 | |
|   template <class T> void bar(T &x) { T::fail(); }
 | |
|   template <class T> void bar(volatile T &x) {}
 | |
| 
 | |
|   void test_ints() {
 | |
|     volatile int x;
 | |
|     bar(x = 5);
 | |
|     bar(x += 5);
 | |
|   }
 | |
| 
 | |
|   enum E { E_zero };
 | |
|   void test_enums() {
 | |
|     volatile E x;
 | |
|     bar(x = E_zero);
 | |
|     bar(x += E_zero); // expected-error {{incompatible type}}
 | |
|   }
 | |
| }
 |