Fix breakage after r303461
authorMatthias Braun <matze@braunis.de>
Sat, 20 May 2017 01:28:52 +0000 (01:28 +0000)
committerMatthias Braun <matze@braunis.de>
Sat, 20 May 2017 01:28:52 +0000 (01:28 +0000)
- Improve wchar_t size predicitions based on target triple.
- Be less strict in wchar_t size verifier.

llvm-svn: 303477

llvm/lib/Analysis/TargetLibraryInfo.cpp
llvm/lib/IR/Verifier.cpp

index 7a07ab7..2be5d5c 100644 (file)
@@ -1521,7 +1521,11 @@ TargetLibraryInfoImpl &TargetLibraryAnalysis::lookupInfoImpl(const Triple &T) {
 
 unsigned TargetLibraryInfoImpl::getTargetWCharSize(const Triple &T) {
   // See also clang/lib/Basic/Targets.cpp.
-  return T.isPS4() || T.isOSWindows() || T.getArch() == Triple::xcore ? 2 : 4;
+  if (T.isPS4() || T.isOSWindows() || T.isArch16Bit())
+    return 2;
+  if (T.getArch() == Triple::xcore)
+    return 1;
+  return 4;
 }
 
 unsigned TargetLibraryInfoImpl::getWCharSize(const Module &M) const {
index 4b9bdcf..21e8048 100644 (file)
@@ -1322,9 +1322,6 @@ Verifier::visitModuleFlag(const MDNode *Op,
     ConstantInt *Value
       = mdconst::dyn_extract_or_null<ConstantInt>(Op->getOperand(2));
     Assert(Value, "wchar_size metadata requires constant integer argument");
-    uint64_t WCharSize = Value->getZExtValue();
-    Assert(WCharSize == 0 || WCharSize == 2 || WCharSize == 4,
-           "wchar_size should be 0, 2 or 4");
   }
 }