[PATCH] D15798: Fix for Bug 24852 (crash with -debug -instcombine)
Keno Fischer via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 7 11:55:07 PST 2016
loladiro added a comment.
Would the following be a better way to address this:
diff --git a/lib/IR/AsmWriter.cpp b/lib/IR/AsmWriter.cpp
index 185db47..949b710 100644
--- a/lib/IR/AsmWriter.cpp
+++ b/lib/IR/AsmWriter.cpp
@@ -2052,7 +2052,8 @@ private:
/// \brief Print out metadata attachments.
void printMetadataAttachments(
const SmallVectorImpl<std::pair<unsigned, MDNode *>> &MDs,
- StringRef Separator);
+ StringRef Separator,
+ LLVMContext &Context);
// printInfoComment - Print a little comment after the instruction indicating
// which slot it occupies.
@@ -2627,7 +2628,7 @@ void AssemblyWriter::printFunction(const Function *F) {
SmallVector<std::pair<unsigned, MDNode *>, 4> MDs;
F->getAllMetadata(MDs);
- printMetadataAttachments(MDs, " ");
+ printMetadataAttachments(MDs, " ", F->getContext());
if (F->isDeclaration()) {
Out << '\n';
@@ -3111,7 +3112,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
// Print Metadata info.
SmallVector<std::pair<unsigned, MDNode *>, 4> InstMD;
I.getAllMetadata(InstMD);
- printMetadataAttachments(InstMD, ", ");
+ printMetadataAttachments(InstMD, ", ", I.getType()->getContext());
// Print a nice comment.
printInfoComment(I);
@@ -3119,12 +3120,13 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
void AssemblyWriter::printMetadataAttachments(
const SmallVectorImpl<std::pair<unsigned, MDNode *>> &MDs,
- StringRef Separator) {
+ StringRef Separator,
+ LLVMContext &Context) {
if (MDs.empty())
return;
if (MDNames.empty())
- TheModule->getMDKindNames(MDNames);
+ Context.getMDKindNames(MDNames);
for (const auto &I : MDs) {
unsigned Kind = I.first;
That way you'd still get the names in the printout.
http://reviews.llvm.org/D15798
More information about the llvm-commits
mailing list