32 lines
		
	
	
		
			768 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			768 B
		
	
	
	
		
			C
		
	
	
	
// RUN: %clang_cc1 %s -triple=i686-apple-darwin9 -verify
 | 
						|
// rdar://13973577
 | 
						|
 | 
						|
struct foo {
 | 
						|
  int big[128];
 | 
						|
};
 | 
						|
struct bar {
 | 
						|
  char c[3];
 | 
						|
};
 | 
						|
 | 
						|
struct bar smallThing;
 | 
						|
struct foo bigThing;
 | 
						|
_Atomic(struct foo) bigAtomic;
 | 
						|
 | 
						|
void structAtomicStore() {
 | 
						|
  struct foo f = {0};
 | 
						|
  __c11_atomic_store(&bigAtomic, f, 5); // expected-error {{atomic store requires runtime support that is not available for this target}}
 | 
						|
 | 
						|
  struct bar b = {0};
 | 
						|
  __atomic_store(&smallThing, &b, 5);
 | 
						|
 | 
						|
  __atomic_store(&bigThing, &f, 5);
 | 
						|
}
 | 
						|
 | 
						|
void structAtomicLoad() {
 | 
						|
  struct foo f = __c11_atomic_load(&bigAtomic, 5); // expected-error {{atomic load requires runtime support that is not available for this target}}
 | 
						|
  struct bar b;
 | 
						|
  __atomic_load(&smallThing, &b, 5);
 | 
						|
 | 
						|
  __atomic_load(&bigThing, &f, 5);
 | 
						|
}
 |