IR: Require DICompositeType for ODR uniquing type map

Tighten up the API for debug info ODR type uniquing in LLVMContext.  The
only reason to allow other DIType subclasses is to make the unit tests
prettier :/.

llvm-svn: 266737
This commit is contained in:
Duncan P. N. Exon Smith
2016-04-19 14:42:55 +00:00
parent 6145366510
commit 86f1bf98dc
6 changed files with 22 additions and 19 deletions

View File

@@ -2192,12 +2192,12 @@ std::error_code BitcodeReader::parseMetadata(bool ModuleLevel) {
// mapping.
unsigned Flags = Record[10];
auto *Identifier = getMDString(Record[15]);
DIType **MappedT = nullptr;
DICompositeType **MappedT = nullptr;
if (!(Flags & DINode::FlagFwdDecl) && Identifier)
MappedT = Context.getOrInsertODRUniquedType(*Identifier);
// Use the mapped type node, or create a new one if necessary.
DIType *CT = MappedT ? *MappedT : nullptr;
DICompositeType *CT = MappedT ? *MappedT : nullptr;
if (!CT) {
CT = GET_OR_DISTINCT(
DICompositeType, Record[0],