forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			44 lines
		
	
	
		
			797 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			797 B
		
	
	
	
		
			C++
		
	
	
	
// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - -O3 | FileCheck -check-prefix CHECK-LP64 %s
 | 
						|
// RUN: %clang_cc1 %s -triple=i386-apple-darwin10 -emit-llvm -o - -O3 | FileCheck -check-prefix CHECK-LP32 %s
 | 
						|
 | 
						|
// CHECK-LP64: %union.Test1 = type { i32, [4 x i8] }
 | 
						|
union Test1 {
 | 
						|
  int a;
 | 
						|
  int b: 39;
 | 
						|
} t1;
 | 
						|
 | 
						|
// CHECK-LP64: %union.Test2 = type { i8 }
 | 
						|
union Test2 {
 | 
						|
  int : 6;
 | 
						|
} t2;
 | 
						|
 | 
						|
// CHECK-LP64: %union.Test3 = type { i16 }
 | 
						|
union Test3 {
 | 
						|
  int : 9;
 | 
						|
} t3;
 | 
						|
 | 
						|
 | 
						|
#define CHECK(x) if (!(x)) return __LINE__
 | 
						|
 | 
						|
int f() {
 | 
						|
  struct {
 | 
						|
    int a;
 | 
						|
 | 
						|
    unsigned long long b : 65;
 | 
						|
 | 
						|
    int c;
 | 
						|
  } c;
 | 
						|
  
 | 
						|
  c.a = 0;
 | 
						|
  c.b = (unsigned long long)-1;
 | 
						|
  c.c = 0;
 | 
						|
 | 
						|
  CHECK(c.a == 0);
 | 
						|
  CHECK(c.b == (unsigned long long)-1);
 | 
						|
  CHECK(c.c == 0);
 | 
						|
 | 
						|
// CHECK-LP64: ret i32 0
 | 
						|
// CHECK-LP32: ret i32 0
 | 
						|
  return 0;
 | 
						|
}
 |