Per PR4506, fix the type of size_t on OpenBSD.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74795 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index 3f7d9a3..7a5adea 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -889,6 +889,17 @@
 } // end anonymous namespace
 
 namespace {
+class OpenBSDI386TargetInfo : public OpenBSDTargetInfo<X86_32TargetInfo> {
+public:
+  OpenBSDI386TargetInfo(const std::string& triple) :
+    OpenBSDTargetInfo<X86_32TargetInfo>(triple) {
+    SizeType = UnsignedLong;
+    IntPtrType = SignedLong;
+  }
+};
+} // end anonymous namespace
+
+namespace {
 class DarwinI386TargetInfo : public DarwinTargetInfo<X86_32TargetInfo> {
 public:
   DarwinI386TargetInfo(const std::string& triple) :
@@ -1403,7 +1414,7 @@
     if (isDragonFly)
       return new DragonFlyBSDTargetInfo<X86_32TargetInfo>(T);
     if (isOpenBSD)
-      return new OpenBSDTargetInfo<X86_32TargetInfo>(T);
+      return new OpenBSDI386TargetInfo(T);
     if (isFreeBSD)
       return new FreeBSDTargetInfo<X86_32TargetInfo>(T);
     if (isSolaris)