forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			591 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			591 B
		
	
	
	
		
			C
		
	
	
	
| // RUN: %clang_cc1 -mms-bitfields -fsyntax-only -verify -triple x86_64-apple-darwin9 %s
 | |
| // expected-no-diagnostics
 | |
| 
 | |
| // The -mms-bitfields commandline parameter should behave the same
 | |
| // as the ms_struct attribute.
 | |
| struct
 | |
| {
 | |
|    int a : 1;
 | |
|    short b : 1;
 | |
| } t;
 | |
| 
 | |
| // MS pads out bitfields between different types.
 | |
| static int arr[(sizeof(t) == 8) ? 1 : -1];
 | |
| 
 | |
| #pragma pack (push,1)
 | |
| 
 | |
| typedef unsigned int UINT32;
 | |
| 
 | |
| struct Inner {
 | |
|   UINT32    A    :  1;
 | |
|   UINT32    B    :  1;
 | |
|   UINT32    C    :  1;
 | |
|   UINT32    D    : 30;
 | |
| } Inner;
 | |
| 
 | |
| #pragma pack (pop)
 | |
| 
 | |
| static int arr2[(sizeof(Inner) == 8) ? 1 : -1];
 |