When spewing out warnings during function resolution, do not vomit out pages
and pages of non-symbolic types.
llvm-svn: 10109
diff --git a/llvm/lib/Transforms/IPO/FunctionResolution.cpp b/llvm/lib/Transforms/IPO/FunctionResolution.cpp
index 2a366c8..1a5c1fa 100644
--- a/llvm/lib/Transforms/IPO/FunctionResolution.cpp
+++ b/llvm/lib/Transforms/IPO/FunctionResolution.cpp
@@ -82,8 +82,11 @@
if (OldMT->getParamTypes()[i]->getPrimitiveID() !=
ConcreteMT->getParamTypes()[i]->getPrimitiveID()) {
std::cerr << "WARNING: Function [" << Old->getName()
- << "]: Parameter types conflict for: '" << OldMT
- << "' and '" << ConcreteMT << "'\n";
+ << "]: Parameter types conflict for: '";
+ WriteTypeSymbolic(std::cerr, OldMT, &M);
+ std::cerr << "' and '";
+ WriteTypeSymbolic(std::cerr, ConcreteMT, &M);
+ std::cerr << "'\n";
return Changed;
}
@@ -227,8 +230,9 @@
if (!DontPrintWarning) {
std::cerr << "WARNING: Found global types that are not compatible:\n";
for (unsigned i = 0; i < Globals.size(); ++i) {
- std::cerr << "\t" << *Globals[i]->getType() << " %"
- << Globals[i]->getName() << "\n";
+ std::cerr << "\t";
+ WriteTypeSymbolic(std::cerr, Globals[i]->getType(), &M);
+ std::cerr << " %" << Globals[i]->getName() << "\n";
}
}