AsmWriter/Bitcode: MDTemplate{Type,Value}Parameter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229019 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith
2015-02-13 01:34:32 +00:00
parent 7bd3d1d3bd
commit 8921bbca59
13 changed files with 169 additions and 25 deletions

View File

@@ -1502,6 +1502,29 @@ std::error_code BitcodeReader::ParseMetadata() {
NextMDValueNo++);
break;
}
case bitc::METADATA_TEMPLATE_TYPE: {
if (Record.size() != 4)
return Error("Invalid record");
MDValueList.AssignValue(
GET_OR_DISTINCT(MDTemplateTypeParameter, Record[0],
(Context, getMDOrNull(Record[1]),
getMDString(Record[2]), getMDOrNull(Record[3]))),
NextMDValueNo++);
break;
}
case bitc::METADATA_TEMPLATE_VALUE: {
if (Record.size() != 6)
return Error("Invalid record");
MDValueList.AssignValue(
GET_OR_DISTINCT(MDTemplateValueParameter, Record[0],
(Context, Record[1], getMDOrNull(Record[2]),
getMDString(Record[3]), getMDOrNull(Record[4]),
getMDOrNull(Record[5]))),
NextMDValueNo++);
break;
}
case bitc::METADATA_STRING: {
std::string String(Record.begin(), Record.end());
llvm::UpgradeMDStringConstant(String);