[libcxxabi][mips] Correct float_data::mangled_size for all ABI's.
Summary:
Patch by Nitesh Jain and Jaydeep Patil with a small revision to use ABIs rather
than Architecture Revisions (which currently imply particular ABIs).
Fixes test_demangle.pass.cpp (PR24149).
Subscribers: mclow.lists, jaydeep, nitesh.jain, hans, cfe-commits
Differential Revision: http://reviews.llvm.org/D11483
git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@243645 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/src/cxa_demangle.cpp b/src/cxa_demangle.cpp
index d80843e..f2878f3 100644
--- a/src/cxa_demangle.cpp
+++ b/src/cxa_demangle.cpp
@@ -156,7 +156,9 @@
template <>
struct float_data<long double>
{
-#if defined(__arm__)
+#if defined(__mips__) && defined(__mips_n64)
+ static const size_t mangled_size = 32;
+#elif defined(__arm__) || defined(__mips__)
static const size_t mangled_size = 16;
#else
static const size_t mangled_size = 20; // May need to be adjusted to 16 or 24 on other platforms