Index: llvm/trunk/lib/IR/Verifier.cpp =================================================================== --- llvm/trunk/lib/IR/Verifier.cpp +++ llvm/trunk/lib/IR/Verifier.cpp @@ -1317,6 +1317,15 @@ 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(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.