aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Targets/WebAssembly.cpp
diff options
context:
space:
mode:
authorDan Gohman <dev@sunfishcode.online>2021-02-04 16:12:41 -0800
committerDan Gohman <dev@sunfishcode.online>2021-02-04 18:16:48 -0800
commit95da64da23ac3a5855a8934a738b0fa10aa1323c (patch)
treecbf612ed4a2c7a8c2aed2eaa6978ec3f8a546713 /clang/lib/Basic/Targets/WebAssembly.cpp
parent698c6b0a099b902722d9e89234e0205ac240c13e (diff)
downloadllvm-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.cpp9
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);