diff options
author | Dan Gohman <dev@sunfishcode.online> | 2021-02-04 16:12:41 -0800 |
---|---|---|
committer | Dan Gohman <dev@sunfishcode.online> | 2021-02-04 18:16:48 -0800 |
commit | 95da64da23ac3a5855a8934a738b0fa10aa1323c (patch) | |
tree | cbf612ed4a2c7a8c2aed2eaa6978ec3f8a546713 /clang/lib/Basic/Targets/WebAssembly.cpp | |
parent | 698c6b0a099b902722d9e89234e0205ac240c13e (diff) | |
download | llvm-95da64da23ac3a5855a8934a738b0fa10aa1323c.zip llvm-95da64da23ac3a5855a8934a738b0fa10aa1323c.tar.gz llvm-95da64da23ac3a5855a8934a738b0fa10aa1323c.tar.bz2 |
[WebAssembly] Use single-threaded mode when -matomics isn't enabled.
When the -matomics feature is not enabled, disable POSIXThreads
mode and set the thread model to Single, so that we don't predefine
macros like `__STDCPP_THREADS__`.
Differential Revision: https://reviews.llvm.org/D96091
Diffstat (limited to 'clang/lib/Basic/Targets/WebAssembly.cpp')
-rw-r--r-- | clang/lib/Basic/Targets/WebAssembly.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/WebAssembly.cpp b/clang/lib/Basic/Targets/WebAssembly.cpp index dcb3d8fd..89babe8 100644 --- a/clang/lib/Basic/Targets/WebAssembly.cpp +++ b/clang/lib/Basic/Targets/WebAssembly.cpp @@ -253,6 +253,15 @@ ArrayRef<Builtin::Info> WebAssemblyTargetInfo::getTargetBuiltins() const { Builtin::FirstTSBuiltin); } +void WebAssemblyTargetInfo::adjust(LangOptions &Opts) { + // If the Atomics feature isn't available, turn off POSIXThreads and + // ThreadModel, so that we don't predefine _REENTRANT or __STDCPP_THREADS__. + if (!HasAtomics) { + Opts.POSIXThreads = false; + Opts.setThreadModel(LangOptions::ThreadModelKind::Single); + } +} + void WebAssembly32TargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { WebAssemblyTargetInfo::getTargetDefines(Opts, Builder); |