From 7bad4167654ef846155bae7165fd0ffcc24fcbbe Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Fri, 11 Oct 2013 19:56:11 -0400 Subject: have LLVM print type strings for us Example: void ({ i64, %tydesc*, i8*, i8*, i8 }*, i64*, %"struct.std::fmt::Formatter[#1]"*)* Before, we would print 20 levels deep due to recursion in the type definition. --- src/rustllvm/RustWrapper.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/rustllvm/RustWrapper.cpp') diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 31a02dceb1c..f8d56f4e892 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -803,3 +803,10 @@ extern "C" void LLVMDICompositeTypeSetTypeArray( { unwrapDI(CompositeType).setTypeArray(unwrapDI(TypeArray)); } + +extern "C" char *LLVMTypeToString(LLVMTypeRef Type) { + std::string s; + llvm::raw_string_ostream os(s); + unwrap(Type)->print(os); + return strdup(os.str().data()); +} -- cgit 1.4.1-3-g733a5