Spew symbolic types!
authorChris Lattner <sabre@nondot.org>
Thu, 20 Nov 2003 18:23:14 +0000 (18:23 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 20 Nov 2003 18:23:14 +0000 (18:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10110 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Linker/LinkModules.cpp
lib/Transforms/Utils/Linker.cpp
lib/VMCore/Linker.cpp

index 4bc78a4cde3c5b3d39066e3c58fab6f5717ac139..bdbdb7d4ccc263e9ae855387dc375ed005616e2f 100644 (file)
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Transforms/Utils/Linker.h"
+#include "llvm/Constants.h"
+#include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
 #include "llvm/SymbolTable.h"
-#include "llvm/DerivedTypes.h"
 #include "llvm/iOther.h"
-#include "llvm/Constants.h"
+#include "llvm/Assembly/Writer.h"
 
 namespace llvm {
 
@@ -239,7 +240,11 @@ static bool LinkTypes(Module *Dest, const Module *Src, std::string *Err) {
         const Type *T1 = cast<Type>(VM.find(Name)->second);
         const Type *T2 = cast<Type>(DestST->lookup(Type::TypeTy, Name));
         std::cerr << "WARNING: Type conflict between types named '" << Name
-                  <<  "'.\n    Src='" << *T1 << "'.\n   Dest='" << *T2 << "'\n";
+                  <<  "'.\n    Src='";
+        WriteTypeSymbolic(std::cerr, T1, Src);
+        std::cerr << "'.\n   Dest='";
+        WriteTypeSymbolic(std::cerr, T2, Dest);
+        std::cerr << "'\n";
 
         // Remove the symbol name from the destination.
         DelayedTypesToResolve.pop_back();
index 4bc78a4cde3c5b3d39066e3c58fab6f5717ac139..bdbdb7d4ccc263e9ae855387dc375ed005616e2f 100644 (file)
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Transforms/Utils/Linker.h"
+#include "llvm/Constants.h"
+#include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
 #include "llvm/SymbolTable.h"
-#include "llvm/DerivedTypes.h"
 #include "llvm/iOther.h"
-#include "llvm/Constants.h"
+#include "llvm/Assembly/Writer.h"
 
 namespace llvm {
 
@@ -239,7 +240,11 @@ static bool LinkTypes(Module *Dest, const Module *Src, std::string *Err) {
         const Type *T1 = cast<Type>(VM.find(Name)->second);
         const Type *T2 = cast<Type>(DestST->lookup(Type::TypeTy, Name));
         std::cerr << "WARNING: Type conflict between types named '" << Name
-                  <<  "'.\n    Src='" << *T1 << "'.\n   Dest='" << *T2 << "'\n";
+                  <<  "'.\n    Src='";
+        WriteTypeSymbolic(std::cerr, T1, Src);
+        std::cerr << "'.\n   Dest='";
+        WriteTypeSymbolic(std::cerr, T2, Dest);
+        std::cerr << "'\n";
 
         // Remove the symbol name from the destination.
         DelayedTypesToResolve.pop_back();
index 4bc78a4cde3c5b3d39066e3c58fab6f5717ac139..bdbdb7d4ccc263e9ae855387dc375ed005616e2f 100644 (file)
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Transforms/Utils/Linker.h"
+#include "llvm/Constants.h"
+#include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
 #include "llvm/SymbolTable.h"
-#include "llvm/DerivedTypes.h"
 #include "llvm/iOther.h"
-#include "llvm/Constants.h"
+#include "llvm/Assembly/Writer.h"
 
 namespace llvm {
 
@@ -239,7 +240,11 @@ static bool LinkTypes(Module *Dest, const Module *Src, std::string *Err) {
         const Type *T1 = cast<Type>(VM.find(Name)->second);
         const Type *T2 = cast<Type>(DestST->lookup(Type::TypeTy, Name));
         std::cerr << "WARNING: Type conflict between types named '" << Name
-                  <<  "'.\n    Src='" << *T1 << "'.\n   Dest='" << *T2 << "'\n";
+                  <<  "'.\n    Src='";
+        WriteTypeSymbolic(std::cerr, T1, Src);
+        std::cerr << "'.\n   Dest='";
+        WriteTypeSymbolic(std::cerr, T2, Dest);
+        std::cerr << "'\n";
 
         // Remove the symbol name from the destination.
         DelayedTypesToResolve.pop_back();