diff options
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index 7a5adea1a38..f850ea7dd42 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -895,6 +895,7 @@ public: OpenBSDTargetInfo<X86_32TargetInfo>(triple) { SizeType = UnsignedLong; IntPtrType = SignedLong; + PtrDiffType = SignedLong; } }; } // end anonymous namespace @@ -988,6 +989,18 @@ public: } // end anonymous namespace namespace { +class OpenBSDX86_64TargetInfo : public OpenBSDTargetInfo<X86_64TargetInfo> { +public: + OpenBSDX86_64TargetInfo(const std::string& triple) + : OpenBSDTargetInfo<X86_64TargetInfo>(triple) { + IntMaxType = SignedLongLong; + UIntMaxType = UnsignedLongLong; + Int64Type = SignedLongLong; + } +}; +} // end anonymous namespace + +namespace { class ARMTargetInfo : public TargetInfo { enum { Armv4t, @@ -1392,7 +1405,7 @@ TargetInfo* TargetInfo::CreateTargetInfo(const std::string &T) { if (isLinux) return new LinuxTargetInfo<X86_64TargetInfo>(T); if (isOpenBSD) - return new OpenBSDTargetInfo<X86_64TargetInfo>(T); + return new OpenBSDX86_64TargetInfo(T); if (isFreeBSD) return new FreeBSDTargetInfo<X86_64TargetInfo>(T); if (isSolaris) |