From: Brad Smith Date: Sat, 4 Sep 2021 01:11:32 +0000 (-0400) Subject: [clang] OpenBSD does not support C11 atomics or threads. X-Git-Tag: upstream/15.0.7~32251 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d8cd7806310c51af912a647a6ca46de62ff13214;p=platform%2Fupstream%2Fllvm.git [clang] OpenBSD does not support C11 atomics or threads. --- diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h index 8004bc0..3d33eab 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -462,6 +462,11 @@ protected: 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(Triple, Opts) { diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 4e46405..6a3cb9b 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