30 lines
		
	
	
		
			465 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			465 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // RUN: %clang_cc1 -fsyntax-only %s
 | |
| 
 | |
| template<typename T, int N>
 | |
| struct X0 {
 | |
|   const char *f0(bool Cond) {
 | |
|     return Cond? "honk" : N;
 | |
|   }
 | |
| 
 | |
|   const char *f1(bool Cond) {
 | |
|     return Cond? N : "honk";
 | |
|   }
 | |
|   
 | |
|   bool f2(const char *str) {
 | |
|     return str == N;
 | |
|   }
 | |
| };
 | |
| 
 | |
| // PR4996
 | |
| template<unsigned I> int f0() { 
 | |
|   return __builtin_choose_expr(I, 0, 1); 
 | |
| }
 | |
| 
 | |
| // PR5041
 | |
| struct A { };
 | |
| 
 | |
| template <typename T> void f(T *t)
 | |
| {
 | |
|   (void)static_cast<void*>(static_cast<A*>(t));
 | |
| }
 | 
