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";
       }
     }