Verifier: Check wchar_size module flag.

Differential Revision: https://reviews.llvm.org/D32974

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303460 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matthias Braun 2017-05-19 22:37:01 +00:00
parent e6f2078382
commit 60ecb7fde8

View File

@ -1317,6 +1317,15 @@ Verifier::visitModuleFlag(const MDNode *Op,
Assert(Inserted,
"module flag identifiers must be unique (or of 'require' type)", ID);
}
if (ID->getString() == "wchar_size") {
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");
}
}
/// Return true if this attribute kind only applies to functions.