diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 62ecd1e28ce6..7843fde5c456 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -4679,8 +4679,10 @@ class ARMTargetInfo : public TargetInfo { DoubleAlign = LongLongAlign = LongDoubleAlign = SuitableAlign = 64; const llvm::Triple &T = getTriple(); - // size_t is unsigned long on MachO-derived environments, NetBSD and Bitrig. + // size_t is unsigned long on MachO-derived environments, NetBSD, + // OpenBSD and Bitrig. if (T.isOSBinFormatMachO() || T.getOS() == llvm::Triple::NetBSD || + T.getOS() == llvm::Triple::OpenBSD || T.getOS() == llvm::Triple::Bitrig) SizeType = UnsignedLong; else @@ -4688,6 +4690,7 @@ class ARMTargetInfo : public TargetInfo { switch (T.getOS()) { case llvm::Triple::NetBSD: + case llvm::Triple::OpenBSD: WCharType = SignedInt; break; case llvm::Triple::Win32: @@ -4885,6 +4888,7 @@ public: switch (getTriple().getOS()) { case llvm::Triple::NetBSD: + case llvm::Triple::OpenBSD: PtrDiffType = SignedLong; break; default: diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c index 5a0b268d8472..16342332b847 100644 --- a/clang/test/Preprocessor/init.c +++ b/clang/test/Preprocessor/init.c @@ -8463,6 +8463,29 @@ // RUN: %clang_cc1 -triple lanai-unknown-unknown -E -dM < /dev/null | FileCheck -match-full-lines -check-prefix LANAI %s // LANAI: #define __lanai__ 1 // +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=amd64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=arm-unknown-openbsd6.1-gnueabi < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=i386-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// RUN: %clang_cc1 -E -dM -ffreestanding -triple=sparc64-unknown-openbsd6.1 < /dev/null | FileCheck -match-full-lines -check-prefix OPENBSD %s +// OPENBSD:#define __ELF__ 1 +// OPENBSD:#define __INT16_TYPE__ short +// OPENBSD:#define __INT32_TYPE__ int +// OPENBSD:#define __INT64_TYPE__ long long int +// OPENBSD:#define __INT8_TYPE__ signed char +// OPENBSD:#define __INTMAX_TYPE__ long long int +// OPENBSD:#define __INTPTR_TYPE__ long int +// OPENBSD:#define __OpenBSD__ 1 +// OPENBSD:#define __PTRDIFF_TYPE__ long int +// OPENBSD:#define __SIZE_TYPE__ long unsigned int +// OPENBSD:#define __UINT16_TYPE__ unsigned short +// OPENBSD:#define __UINT32_TYPE__ unsigned int +// OPENBSD:#define __UINT64_TYPE__ long long unsigned int +// OPENBSD:#define __UINT8_TYPE__ unsigned char +// OPENBSD:#define __UINTMAX_TYPE__ long long unsigned int +// OPENBSD:#define __UINTPTR_TYPE__ long unsigned int +// OPENBSD:#define __WCHAR_TYPE__ int +// OPENBSD:#define __WINT_TYPE__ int +// // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc64-unknown-freebsd < /dev/null | FileCheck -match-full-lines -check-prefix PPC64-FREEBSD %s // PPC64-FREEBSD-NOT: #define __LONG_DOUBLE_128__ 1 //