Author: marshall
Date: Mon Oct 12 15:45:05 2015
New Revision: 250097

URL: http://llvm.org/viewvc/llvm-project?rev=250097&view=rev
Log:
Fix Bug 25103 - _cxa_demangle improperly demangles virtual thunks. Thanks to 
Jason King for the report and suggested fix

Modified:
    libcxxabi/trunk/src/cxa_demangle.cpp
    libcxxabi/trunk/test/test_demangle.pass.cpp

Modified: libcxxabi/trunk/src/cxa_demangle.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_demangle.cpp?rev=250097&r1=250096&r2=250097&view=diff
==============================================================================
--- libcxxabi/trunk/src/cxa_demangle.cpp (original)
+++ libcxxabi/trunk/src/cxa_demangle.cpp Mon Oct 12 15:45:05 2015
@@ -4415,7 +4415,7 @@ parse_special_name(const char* first, co
                 {
                     if (db.names.empty())
                         return first;
-                    if (first[2] == 'v')
+                    if (first[1] == 'v')
                     {
                         db.names.back().first.insert(0, "virtual thunk to ");
                         first = t;

Modified: libcxxabi/trunk/test/test_demangle.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/test/test_demangle.pass.cpp?rev=250097&r1=250096&r2=250097&view=diff
==============================================================================
--- libcxxabi/trunk/test/test_demangle.pass.cpp (original)
+++ libcxxabi/trunk/test/test_demangle.pass.cpp Mon Oct 12 15:45:05 2015
@@ -29594,6 +29594,8 @@ const char* cases[][2] =
     {"_Zli2_xy", "operator\"\" _x(unsigned long long)"},
     {"_Z1fIiEDcT_", "decltype(auto) f<int>(int)"},
     {"_ZZ4testvEN1g3fooE5Point", "test()::g::foo(Point)"},
+    {"_ZThn12_NSt9strstreamD0Ev",   "non-virtual thunk to 
std::strstream::~strstream()"},
+    {"_ZTv0_n12_NSt9strstreamD0Ev",     "virtual thunk to 
std::strstream::~strstream()"},
 };
 
 const unsigned N = sizeof(cases) / sizeof(cases[0]);


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to