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);
 | |
| }
 | 
