llvm-project/clang/test/Sema/atomic-requires-library-error.c
Aaron Ballman e765e0bc8e Use functions with prototypes when appropriate; NFC
A significant number of our tests in C accidentally use functions
without prototypes. This patch converts the function signatures to have
a prototype for the situations where the test is not specific to K&R C
declarations. e.g.,

  void func();

becomes

  void func(void);

This is the first batch of tests being updated (there are a significant
number of other tests left to be updated).
2022-02-03 16:42:27 -05:00

32 lines
776 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(void) {
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(void) {
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);
}