summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-10-07 16:37:55 +0000
committerDevang Patel <dpatel@apple.com>2009-10-07 16:37:55 +0000
commitbcdb02587e3320ebe596a3bc3d42d64a1c09cec9 (patch)
tree38a088805ec3ca4ef7c907f31335fa5e2021e7e5 /llvm/lib
parent822f634d29a3aae1e0ba7ff7e3f7a3d3a133580c (diff)
downloadbcm5719-llvm-bcdb02587e3320ebe596a3bc3d42d64a1c09cec9.tar.gz
bcm5719-llvm-bcdb02587e3320ebe596a3bc3d42d64a1c09cec9.zip
Do not assume that the module is set.
llvm-svn: 83462
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/VMCore/AsmWriter.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/llvm/lib/VMCore/AsmWriter.cpp b/llvm/lib/VMCore/AsmWriter.cpp
index 34ce7bb9964..3e628ae0d08 100644
--- a/llvm/lib/VMCore/AsmWriter.cpp
+++ b/llvm/lib/VMCore/AsmWriter.cpp
@@ -1303,12 +1303,14 @@ public:
: Out(o), Machine(Mac), TheModule(M), AnnotationWriter(AAW) {
AddModuleTypesToPrinter(TypePrinter, NumberedTypes, M);
// FIXME: Provide MDPrinter
- MetadataContext &TheMetadata = M->getContext().getMetadata();
- const StringMap<unsigned> *Names = TheMetadata.getHandlerNames();
- for (StringMapConstIterator<unsigned> I = Names->begin(),
- E = Names->end(); I != E; ++I) {
- const StringMapEntry<unsigned> &Entry = *I;
- MDNames[I->second] = Entry.getKeyData();
+ if (M) {
+ MetadataContext &TheMetadata = M->getContext().getMetadata();
+ const StringMap<unsigned> *Names = TheMetadata.getHandlerNames();
+ for (StringMapConstIterator<unsigned> I = Names->begin(),
+ E = Names->end(); I != E; ++I) {
+ const StringMapEntry<unsigned> &Entry = *I;
+ MDNames[I->second] = Entry.getKeyData();
+ }
}
}
@@ -2029,15 +2031,16 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
}
// Print Metadata info
- MetadataContext &TheMetadata = I.getContext().getMetadata();
- const MetadataContext::MDMapTy *MDMap = TheMetadata.getMDs(&I);
- if (MDMap)
- for (MetadataContext::MDMapTy::const_iterator MI = MDMap->begin(),
- ME = MDMap->end(); MI != ME; ++MI)
- if (const MDNode *MD = dyn_cast_or_null<MDNode>(MI->second))
- Out << ", !" << MDNames[MI->first]
- << " !" << Machine.getMetadataSlot(MD);
-
+ if (!MDNames.empty()) {
+ MetadataContext &TheMetadata = I.getContext().getMetadata();
+ const MetadataContext::MDMapTy *MDMap = TheMetadata.getMDs(&I);
+ if (MDMap)
+ for (MetadataContext::MDMapTy::const_iterator MI = MDMap->begin(),
+ ME = MDMap->end(); MI != ME; ++MI)
+ if (const MDNode *MD = dyn_cast_or_null<MDNode>(MI->second))
+ Out << ", !" << MDNames[MI->first]
+ << " !" << Machine.getMetadataSlot(MD);
+ }
printInfoComment(I);
}
OpenPOWER on IntegriCloud