When spewing out warnings during function resolution, do not vomit out pages
authorChris Lattner <sabre@nondot.org>
Thu, 20 Nov 2003 18:19:35 +0000 (18:19 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 20 Nov 2003 18:19:35 +0000 (18:19 +0000)
and pages of non-symbolic types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10109 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/FunctionResolution.cpp

index 2a366c84cd62e5bb12d9b0d35c25f993af95678d..1a5c1faf394de7cb5016fecb3fa150d62f82ebd3 100644 (file)
@@ -82,8 +82,11 @@ static bool ResolveFunctions(Module &M, std::vector<GlobalValue*> &Globals,
             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 @@ static bool ProcessGlobalsWithSameName(Module &M, TargetData &TD,
     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";
       }
     }