Index: libcxxabi/trunk/src/demangle/ItaniumDemangle.h =================================================================== --- libcxxabi/trunk/src/demangle/ItaniumDemangle.h +++ libcxxabi/trunk/src/demangle/ItaniumDemangle.h @@ -2162,9 +2162,6 @@ // conversion operator's type, and are resolved in the enclosing . PODSmallVector ForwardTemplateRefs; - void (*TypeCallback)(void *, const char *) = nullptr; - void *TypeCallbackContext = nullptr; - bool TryToParseTemplateArgs = true; bool PermitForwardTemplateReferences = false; bool ParsingLambdaParams = false; @@ -3458,9 +3455,6 @@ Node *AbstractManglingParser::parseType() { Node *Result = nullptr; - if (TypeCallback != nullptr) - TypeCallback(TypeCallbackContext, First); - switch (look()) { // ::= case 'r': Index: llvm/trunk/include/llvm/Demangle/Demangle.h =================================================================== --- llvm/trunk/include/llvm/Demangle/Demangle.h +++ llvm/trunk/include/llvm/Demangle/Demangle.h @@ -31,11 +31,6 @@ char *itaniumDemangle(const char *mangled_name, char *buf, size_t *n, int *status); -/// Calls the callback \c Callback with \c Ctx as an argument whenever a type is -/// encountered. Returns true if \c MangledName couldn't be parsed. -bool itaniumFindTypesInMangledName(const char *MangledName, void *Ctx, - void (*Callback)(void *, const char *)); - enum MSDemangleFlags { MSDF_None = 0, MSDF_DumpBackrefs = 1 << 0 }; char *microsoftDemangle(const char *mangled_name, char *buf, size_t *n, Index: llvm/trunk/include/llvm/Demangle/ItaniumDemangle.h =================================================================== --- llvm/trunk/include/llvm/Demangle/ItaniumDemangle.h +++ llvm/trunk/include/llvm/Demangle/ItaniumDemangle.h @@ -2157,9 +2157,6 @@ // conversion operator's type, and are resolved in the enclosing . PODSmallVector ForwardTemplateRefs; - void (*TypeCallback)(void *, const char *) = nullptr; - void *TypeCallbackContext = nullptr; - bool TryToParseTemplateArgs = true; bool PermitForwardTemplateReferences = false; bool ParsingLambdaParams = false; @@ -3453,9 +3450,6 @@ Node *AbstractManglingParser::parseType() { Node *Result = nullptr; - if (TypeCallback != nullptr) - TypeCallback(TypeCallbackContext, First); - switch (look()) { // ::= case 'r': Index: llvm/trunk/lib/Demangle/ItaniumDemangle.cpp =================================================================== --- llvm/trunk/lib/Demangle/ItaniumDemangle.cpp +++ llvm/trunk/lib/Demangle/ItaniumDemangle.cpp @@ -356,15 +356,6 @@ return InternalStatus == demangle_success ? Buf : nullptr; } -bool llvm::itaniumFindTypesInMangledName(const char *MangledName, void *Ctx, - void (*Callback)(void *, - const char *)) { - Demangler Parser(MangledName, MangledName + std::strlen(MangledName)); - Parser.TypeCallback = Callback; - Parser.TypeCallbackContext = Ctx; - return Parser.parse() == nullptr; -} - ItaniumPartialDemangler::ItaniumPartialDemangler() : RootNode(nullptr), Context(new Demangler{nullptr, nullptr}) {} Index: llvm/trunk/unittests/Demangle/CMakeLists.txt =================================================================== --- llvm/trunk/unittests/Demangle/CMakeLists.txt +++ llvm/trunk/unittests/Demangle/CMakeLists.txt @@ -6,5 +6,4 @@ add_llvm_unittest(DemangleTests ItaniumDemangleTest.cpp PartialDemangleTest.cpp - FindTypesInMangledNameTest.cpp ) Index: llvm/trunk/unittests/Demangle/FindTypesInMangledNameTest.cpp =================================================================== --- llvm/trunk/unittests/Demangle/FindTypesInMangledNameTest.cpp +++ llvm/trunk/unittests/Demangle/FindTypesInMangledNameTest.cpp @@ -1,34 +0,0 @@ -//===------------------ FindTypesInMangledNameTest.cpp --------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include -#include -#include "llvm/Demangle/Demangle.h" -#include "gtest/gtest.h" - -TEST(FindTypesInMangledNameTest, Test) { - std::vector Types; - const char *Mangled = "_Z1fiv"; - EXPECT_FALSE(llvm::itaniumFindTypesInMangledName( - Mangled, static_cast(&Types), [](void *Ty, const char *P) { - static_cast *>(Ty)->push_back(P); - })); - EXPECT_EQ(Types.size(), size_t(2)); - EXPECT_EQ(Mangled + 4, Types.front()); - EXPECT_EQ(Mangled + 5, Types.back()); - - EXPECT_TRUE(llvm::itaniumFindTypesInMangledName( - "Not a mangled name!", nullptr, [](void *, const char *) {})); - - int TC = 0; - EXPECT_FALSE(llvm::itaniumFindTypesInMangledName( - "_Z1fPRic", static_cast(&TC), - [](void *Ctx, const char *) { ++*static_cast(Ctx); })); - EXPECT_EQ(TC, 4); // pointer, reference, int, char. -}