summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/stdatomic.h
Commit message (Collapse)AuthorAgeFilesLines
* Don't use BCPL comments here, in case someone wants to use <stdatomic.h> ↵Richard Smith2015-01-291-2/+2
| | | | | | from C89 mode. llvm-svn: 227417
* Add an implementation of C11's stdatomic.hHal Finkel2014-10-031-0/+190
Adds a Clang-specific implementation of C11's stdatomic.h header. On systems, such as FreeBSD, where a stdatomic.h header is already provided, we defer to that header instead (using our __has_include_next technology). Otherwise, we provide an implementation in terms of our __c11_atomic_* intrinsics (that were created for this purpose). C11 7.1.4p1 requires function declarations for atomic_thread_fence, atomic_signal_fence, atomic_flag_test_and_set, atomic_flag_test_and_set_explicit, and atomic_flag_clear, and requires that they have external linkage. Accordingly, we provide these declarations, but if a user elides the shadowing macros and uses them, then they must have a libc (or similar) that actually provides definitions. atomic_flag is implemented using _Bool as the underlying type. This is consistent with the implementation provided by FreeBSD and also GCC 4.9 (at least when __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1). Patch by Richard Smith (rebased and slightly edited by me -- Richard said I should drive at this point). llvm-svn: 218957
OpenPOWER on IntegriCloud