aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm2cpp/CppWriter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvm2cpp/CppWriter.cpp')
-rw-r--r--tools/llvm2cpp/CppWriter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/llvm2cpp/CppWriter.cpp b/tools/llvm2cpp/CppWriter.cpp
index 54a28e9f83..0f28e30e16 100644
--- a/tools/llvm2cpp/CppWriter.cpp
+++ b/tools/llvm2cpp/CppWriter.cpp
@@ -1120,6 +1120,13 @@ CppWriter::printTypeDefInternal(const Type* Ty) {
assert(!"Invalid TypeID");
}
+ // If the type had a name, make sure we recreate it.
+ const std::string* progTypeName =
+ findTypeName(TheModule->getSymbolTable(),Ty);
+ if (progTypeName)
+ Out << "mod->addTypeName(\"" << *progTypeName << "\", "
+ << typeName << ");\n";
+
// Pop us off the type stack
TypeStack.pop_back();
@@ -1989,6 +1996,7 @@ void WriteModuleToCppFile(Module* mod, std::ostream& o) {
SlotMachine SlotTable(mod);
CppWriter W(o, SlotTable, mod);
W.write(mod);
+ o << "return mod;\n";
o << "}\n";
}