diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-05-06 15:31:46 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-05-06 15:31:46 +0000 |
commit | d167d428883ea2c0bf3134e425536c3049ffb748 (patch) | |
tree | f9fecf0347ce0fe8c117a3b936d899d61296f0be /clang/lib/Basic/Targets.cpp | |
parent | 1fe0d5ca59ab2e23fc5b9755d83268f649080c61 (diff) | |
download | bcm5719-llvm-d167d428883ea2c0bf3134e425536c3049ffb748.tar.gz bcm5719-llvm-d167d428883ea2c0bf3134e425536c3049ffb748.zip |
[AArch64] Advertise that the __sync_*_compare_and_swap_1/2/4/8 builtins work
Fixes PR23428, where std::thread in libstdc++ would go haywire without
these defines.
llvm-svn: 236605
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 91babd3d14e..283d1d2ae22 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -4926,6 +4926,12 @@ public: if (Crypto) Builder.defineMacro("__ARM_FEATURE_CRYPTO"); + + // All of the __sync_(bool|val)_compare_and_swap_(1|2|4|8) builtins work. + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1"); + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2"); + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4"); + Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8"); } void getTargetBuiltins(const Builtin::Info *&Records, |