forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			27 lines
		
	
	
		
			599 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			599 B
		
	
	
	
		
			C++
		
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify %s
 | |
| template <typename T>
 | |
| struct A {
 | |
|   char a __attribute__((aligned(16)));
 | |
| 
 | |
|   struct B {
 | |
|     typedef T __attribute__((aligned(16))) i16;
 | |
|     i16 x;
 | |
|   };
 | |
| };
 | |
| int a[sizeof(A<int>) == 16 ? 1 : -1];
 | |
| int a2[sizeof(A<int>::B) == 16 ? 1 : -1];
 | |
| 
 | |
| // rdar://problem/8243419
 | |
| namespace test1 {
 | |
|   template <typename T> struct A {
 | |
|     int a;
 | |
|     T b[0];
 | |
|   } __attribute__((packed));
 | |
| 
 | |
|   typedef A<unsigned long> type;
 | |
| 
 | |
|   int test0[sizeof(type) == 4 ? 1 : -1];
 | |
|   int test1[__builtin_offsetof(type, a) == 0 ? 1 : -1];
 | |
|   int test2[__builtin_offsetof(type, b) == 4 ? 1 : -1];
 | |
| }
 |