38 lines
		
	
	
		
			570 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			570 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| // expected-no-diagnostics
 | |
| 
 | |
| enum Enum { val = 1 };
 | |
| template <Enum v> struct C {
 | |
|   typedef C<v> Self;
 | |
| };
 | |
| template struct C<val>;
 | |
| 
 | |
| template<typename T>
 | |
| struct get_size {
 | |
|   static const unsigned value = sizeof(T);
 | |
| };
 | |
| 
 | |
| template<typename T>
 | |
| struct X0 {
 | |
|   enum {
 | |
|     Val1 = get_size<T>::value,
 | |
|     Val2,
 | |
|     SumOfValues = Val1 + Val2
 | |
|   };
 | |
| };
 | |
| 
 | |
| X0<int> x0i;
 | |
| 
 | |
| namespace rdar8020920 {
 | |
|   template<typename T>
 | |
|   struct X {
 | |
|     enum { e0 = 32 };
 | |
| 
 | |
|     unsigned long long bitfield : e0;
 | |
| 
 | |
|     void f(int j) {
 | |
|       bitfield + j;
 | |
|     }
 | |
|   };
 | |
| }
 | 
