Author: rengolin Date: Thu Sep 22 14:28:20 2016 New Revision: 282184 URL: http://llvm.org/viewvc/llvm-project?rev=282184&view=rev Log: [OpenBSD] Add type sign information for OpenBSD
Like NetBSD, OpenBSD prefers having a consistent set of typedefs across the architectures it supports over strictly following the ARM ABIs. The diff below makes sure that clang's view of those types matches OpenBSD's system header files. It also adds a test that checks the relevant types on all OpenBSD platforms that clang works on. Hopefully we can add mips64 and powerpc to that list in the future. Patch by Mark Kettenis <mark.kette...@xs4all.nl> Modified: cfe/trunk/lib/Basic/Targets.cpp cfe/trunk/test/Preprocessor/init.c Modified: cfe/trunk/lib/Basic/Targets.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=282184&r1=282183&r2=282184&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets.cpp (original) +++ cfe/trunk/lib/Basic/Targets.cpp Thu Sep 22 14:28:20 2016 @@ -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: Modified: cfe/trunk/test/Preprocessor/init.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/init.c?rev=282184&r1=282183&r2=282184&view=diff ============================================================================== --- cfe/trunk/test/Preprocessor/init.c (original) +++ cfe/trunk/test/Preprocessor/init.c Thu Sep 22 14:28:20 2016 @@ -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 // _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits