[llvm-branch-commits] [clang] 2a1d8b5 - [clang] OpenBSD does not support C11 atomics or threads.

Tom Stellard via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Sep 7 10:48:06 PDT 2021


Author: Brad Smith
Date: 2021-09-07T10:47:40-07:00
New Revision: 2a1d8b5016eb1aa2ffff838457c9c50699e179f7

URL: https://github.com/llvm/llvm-project/commit/2a1d8b5016eb1aa2ffff838457c9c50699e179f7
DIFF: https://github.com/llvm/llvm-project/commit/2a1d8b5016eb1aa2ffff838457c9c50699e179f7.diff

LOG: [clang] OpenBSD does not support C11 atomics or threads.

(cherry picked from commit d8cd7806310c51af912a647a6ca46de62ff13214)

Added: 
    

Modified: 
    clang/lib/Basic/Targets/OSTargets.h
    clang/test/Preprocessor/init.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h
index e24fb5cf082df..234365ae84d79 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -462,6 +462,11 @@ class LLVM_LIBRARY_VISIBILITY OpenBSDTargetInfo : public OSTargetInfo<Target> {
       Builder.defineMacro("__FLOAT128__");
   }
 
+  if (Opts.C11) {
+    Builder.defineMacro("__STDC_NO_ATOMICS__");
+    Builder.defineMacro("__STDC_NO_THREADS__");
+  }
+
 public:
   OpenBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
       : OSTargetInfo<Target>(Triple, Opts) {

diff  --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index 20ab2c05596b3..43708837c4ae6 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -1464,6 +1464,16 @@
 // OPENBSD:#define __WCHAR_TYPE__ int
 // OPENBSD:#define __WINT_TYPE__ int
 //
+// RUN: %clang_cc1 -x c -std=c11 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC %s
+// RUN: %clang_cc1 -x c -std=gnu11 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC %s
+// RUN: %clang_cc1 -x c -std=c17 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC %s
+// OPENBSD-STDC:#define __STDC_NO_ATOMICS__ 1
+// OPENBSD-STDC:#define __STDC_NO_THREADS__ 1
+//
+// RUN: %clang_cc1 -x c -std=c99 -E -dM -ffreestanding -triple=amd64-unknown-openbsd < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD-STDC-N %s
+// OPENBSD-STDC-N-NOT:#define __STDC_NO_ATOMICS__ 1
+// OPENBSD-STDC-N-NOT:#define __STDC_NO_THREADS__ 1
+//
 // RUN: %clang_cc1 -E -dM -ffreestanding -triple=xcore-none-none < /dev/null | FileCheck -match-full-lines -check-prefix XCORE %s
 // XCORE:#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
 // XCORE:#define __LITTLE_ENDIAN__ 1


        


More information about the llvm-branch-commits mailing list