diff options
author | Devang Patel <dpatel@apple.com> | 2009-11-05 01:13:02 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2009-11-05 01:13:02 +0000 |
commit | 85b8de8118dcfc26902e312609a893c67d9c5fcf (patch) | |
tree | c04b53c952c6538dbfb5982efd5334003cd35732 /lib/AsmParser/LLParser.cpp | |
parent | a0e7b027609251609b60475e1026730a11d1e15f (diff) |
Use WeakVH while storing metadata in containers.
This fixes PR5393.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86091 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser/LLParser.cpp')
-rw-r--r-- | lib/AsmParser/LLParser.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 8e7017063c..63af42dcca 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -480,17 +480,17 @@ bool LLParser::ParseMDNode(MetadataBase *&Node) { if (ParseUInt32(MID)) return true; // Check existing MDNode. - std::map<unsigned, MetadataBase *>::iterator I = MetadataCache.find(MID); + std::map<unsigned, WeakVH>::iterator I = MetadataCache.find(MID); if (I != MetadataCache.end()) { - Node = I->second; + Node = cast<MetadataBase>(I->second); return false; } // Check known forward references. - std::map<unsigned, std::pair<MetadataBase *, LocTy> >::iterator + std::map<unsigned, std::pair<WeakVH, LocTy> >::iterator FI = ForwardRefMDNodes.find(MID); if (FI != ForwardRefMDNodes.end()) { - Node = FI->second.first; + Node = cast<MetadataBase>(FI->second.first); return false; } @@ -570,7 +570,7 @@ bool LLParser::ParseStandaloneMetadata() { MDNode *Init = MDNode::get(Context, Elts.data(), Elts.size()); MetadataCache[MetadataID] = Init; - std::map<unsigned, std::pair<MetadataBase *, LocTy> >::iterator + std::map<unsigned, std::pair<WeakVH, LocTy> >::iterator FI = ForwardRefMDNodes.find(MetadataID); if (FI != ForwardRefMDNodes.end()) { MDNode *FwdNode = cast<MDNode>(FI->second.first); |