[llvm-commits] [llvm] r167730 - /llvm/trunk/tools/llvm-symbolizer/llvm-symbolizer.cpp
Alexander Potapenko
glider at google.com
Mon Nov 12 06:49:59 PST 2012
Author: glider
Date: Mon Nov 12 08:49:58 2012
New Revision: 167730
URL: http://llvm.org/viewvc/llvm-project?rev=167730&view=rev
Log:
Don't use __cxa_demangle under MSVC (which doesn't have it)
Modified:
llvm/trunk/tools/llvm-symbolizer/llvm-symbolizer.cpp
Modified: llvm/trunk/tools/llvm-symbolizer/llvm-symbolizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-symbolizer/llvm-symbolizer.cpp?rev=167730&r1=167729&r2=167730&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-symbolizer/llvm-symbolizer.cpp (original)
+++ llvm/trunk/tools/llvm-symbolizer/llvm-symbolizer.cpp Mon Nov 12 08:49:58 2012
@@ -287,9 +287,11 @@
return Info;
}
-// Assume that __cxa_demangle is provided by libcxxabi.
+#if !defined(_MSC_VER)
+// Assume that __cxa_demangle is provided by libcxxabi (except for Windows).
extern "C" char *__cxa_demangle(const char *mangled_name, char *output_buffer,
size_t *length, int *status);
+#endif
static void printDILineInfo(DILineInfo LineInfo) {
// By default, DILineInfo contains "<invalid>" for function/filename it
@@ -300,6 +302,7 @@
std::string FunctionName = LineInfo.getFunctionName();
if (FunctionName == kDILineInfoBadString)
FunctionName = kSymbolizerBadString;
+#if !defined(_MSC_VER)
if (Demangle) {
int status = 0;
char *DemangledName = __cxa_demangle(
@@ -309,6 +312,7 @@
free(DemangledName);
}
}
+#endif
outs() << FunctionName << "\n";
}
std::string Filename = LineInfo.getFileName();
More information about the llvm-commits
mailing list