[Lldb-commits] [lldb] r205769 - Improve demangler to compile with MSVC.
Virgile Bello
virgile.bello at gmail.com
Tue Apr 8 07:46:45 PDT 2014
Author: xen2
Date: Tue Apr 8 09:46:44 2014
New Revision: 205769
URL: http://llvm.org/viewvc/llvm-project?rev=205769&view=rev
Log:
Improve demangler to compile with MSVC.
Modified:
lldb/trunk/source/Core/Mangled.cpp
Modified: lldb/trunk/source/Core/Mangled.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Mangled.cpp?rev=205769&r1=205768&r2=205769&view=diff
==============================================================================
--- lldb/trunk/source/Core/Mangled.cpp (original)
+++ lldb/trunk/source/Core/Mangled.cpp Tue Apr 8 09:46:44 2014
@@ -11,7 +11,13 @@
// FreeBSD9-STABLE requires this to know about size_t in cxxabi.h
#include <cstddef>
#if defined(_MSC_VER)
-// Cannot enable the builtin demangler on msvc as it does not support the cpp11 within the implementation.
+#define LLDB_USE_BUILTIN_DEMANGLER
+// MSVC doesn't support constexpr, alignas, __attribute__ and noexcept yet
+#define constexpr
+#define alignas(X)
+#define __attribute__(X)
+#define noexcept
+#define snprintf _snprintf
#elif defined (__FreeBSD__)
#define LLDB_USE_BUILTIN_DEMANGLER
#else
@@ -173,30 +179,30 @@ struct float_data<float>
{
static const size_t mangled_size = 8;
static const size_t max_demangled_size = 24;
- static constexpr const char* spec = "%af";
+ static constexpr const char* spec;
};
-constexpr const char* float_data<float>::spec;
+constexpr const char* float_data<float>::spec = "%af";
template <>
struct float_data<double>
{
static const size_t mangled_size = 16;
static const size_t max_demangled_size = 32;
- static constexpr const char* spec = "%a";
+ static constexpr const char* spec;
};
-constexpr const char* float_data<double>::spec;
+constexpr const char* float_data<double>::spec = "%a";
template <>
struct float_data<long double>
{
static const size_t mangled_size = 20; // May need to be adjusted to 16 or 24 on other platforms
static const size_t max_demangled_size = 40;
- static constexpr const char* spec = "%LaL";
+ static constexpr const char* spec;
};
-constexpr const char* float_data<long double>::spec;
+constexpr const char* float_data<long double>::spec = "%LaL";
template <class Float, class C>
const char*
More information about the lldb-commits
mailing list