Author: epilk Date: Thu Aug 2 10:45:01 2018 New Revision: 338747 URL: http://llvm.org/viewvc/llvm-project?rev=338747&view=rev Log: [itanium demangler] Support dot suffixes on block invocation functions
rdar://32378759 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=338747&r1=338746&r2=338747&view=diff ============================================================================== --- libcxxabi/trunk/src/cxa_demangle.cpp (original) +++ libcxxabi/trunk/src/cxa_demangle.cpp Thu Aug 2 10:45:01 2018 @@ -4935,6 +4935,8 @@ Node *Db::parse() { bool RequireNumber = consumeIf('_'); if (parseNumber().empty() && RequireNumber) return nullptr; + if (look() == '.') + First = Last; if (numLeft() != 0) return nullptr; return make<SpecialName>("invocation function for block in ", Encoding); Modified: libcxxabi/trunk/test/test_demangle.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/test/test_demangle.pass.cpp?rev=338747&r1=338746&r2=338747&view=diff ============================================================================== --- libcxxabi/trunk/test/test_demangle.pass.cpp (original) +++ libcxxabi/trunk/test/test_demangle.pass.cpp Thu Aug 2 10:45:01 2018 @@ -29753,6 +29753,8 @@ const char* cases[][2] = // reference collapsing: {"_Z1fIR1SEiOT_", "int f<S&>(S&)"}, {"_Z1fIJR1SS0_EEiDpOT_", "int f<S&, S>(S&, S&&)"}, + + {"___Z3foo_block_invoke.25", "invocation function for block in foo"}, }; 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