Skip to content

Commit 6ca4b67

Browse files
committed
[ItaniumDemangle][NFC] Add getter to ObjCProtoName::getProtocol
And remove now redunant friend declaration. For some reason this was failing to build on one of the MSVC bots after llvm#131836: ``` FAILED: tools/lldb/source/Plugins/ExpressionParser/Clang/CMakeFiles/lldbPluginExpressionParserClang.dir/ClangExpressionParser.cpp.obj ccache C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1441~1.341\bin\Hostx64\x64\cl.exe /nologo /TP -DCLANG_BUILD_STATIC -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\as-builder-10\lldb-x-aarch64\build\tools\lldb\source\Plugins\ExpressionParser\Clang -IC:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\lldb\source\Plugins\ExpressionParser\Clang -IC:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\lldb\include -IC:\buildbot\as-builder-10\lldb-x-aarch64\build\tools\lldb\include -IC:\buildbot\as-builder-10\lldb-x-aarch64\build\include -IC:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\llvm\include -IC:\Python312\include -IC:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\llvm\..\clang\include -IC:\buildbot\as-builder-10\lldb-x-aarch64\build\tools\lldb\..\clang\include -IC:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\lldb\source -IC:\buildbot\as-builder-10\lldb-x-aarch64\build\tools\lldb\source -D__OPTIMIZE__ /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2 -MD -wd4018 -wd4068 -wd4150 -wd4201 -wd4251 -wd4521 -wd4530 -wd4589 /EHs-c- /GR- -UNDEBUG -std:c++17 /showIncludes /Fotools\lldb\source\Plugins\ExpressionParser\Clang\CMakeFiles\lldbPluginExpressionParserClang.dir\ClangExpressionParser.cpp.obj /Fdtools\lldb\source\Plugins\ExpressionParser\Clang\CMakeFiles\lldbPluginExpressionParserClang.dir\lldbPluginExpressionParserClang.pdb /FS -c C:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\lldb\source\Plugins\ExpressionParser\Clang\ClangExpressionParser.cpp C:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(667): error C2248: 'llvm::itanium_demangle::ObjCProtoName::Protocol': cannot access private member declared in class 'llvm::itanium_demangle::ObjCProtoName' C:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(615): note: see declaration of 'llvm::itanium_demangle::ObjCProtoName::Protocol' C:\buildbot\as-builder-10\lldb-x-aarch64\llvm-project\llvm\include\llvm/Demangle/ItaniumDemangle.h(613): note: see declaration of 'llvm::itanium_demangle::ObjCProtoName' ``` It's not quite clear to me why this wasn't compiling but either way this is cleaner. (cherry picked from commit bd96fa7)
1 parent 8189f3a commit 6ca4b67

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

libcxxabi/src/demangle/ItaniumDemangle.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -598,8 +598,6 @@ class ObjCProtoName : public Node {
598598
const Node *Ty;
599599
std::string_view Protocol;
600600

601-
friend class PointerType;
602-
603601
public:
604602
ObjCProtoName(const Node *Ty_, std::string_view Protocol_)
605603
: Node(KObjCProtoName), Ty(Ty_), Protocol(Protocol_) {}
@@ -611,6 +609,8 @@ class ObjCProtoName : public Node {
611609
static_cast<const NameType *>(Ty)->getName() == "objc_object";
612610
}
613611

612+
std::string_view getProtocol() const { return Protocol; }
613+
614614
void printLeft(OutputBuffer &OB) const override {
615615
Ty->print(OB);
616616
OB += "<";
@@ -648,7 +648,7 @@ class PointerType final : public Node {
648648
} else {
649649
const auto *objcProto = static_cast<const ObjCProtoName *>(Pointee);
650650
OB += "id<";
651-
OB += objcProto->Protocol;
651+
OB += objcProto->getProtocol();
652652
OB += ">";
653653
}
654654
}

llvm/include/llvm/Demangle/ItaniumDemangle.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -598,8 +598,6 @@ class ObjCProtoName : public Node {
598598
const Node *Ty;
599599
std::string_view Protocol;
600600

601-
friend class PointerType;
602-
603601
public:
604602
ObjCProtoName(const Node *Ty_, std::string_view Protocol_)
605603
: Node(KObjCProtoName), Ty(Ty_), Protocol(Protocol_) {}
@@ -611,6 +609,8 @@ class ObjCProtoName : public Node {
611609
static_cast<const NameType *>(Ty)->getName() == "objc_object";
612610
}
613611

612+
std::string_view getProtocol() const { return Protocol; }
613+
614614
void printLeft(OutputBuffer &OB) const override {
615615
Ty->print(OB);
616616
OB += "<";
@@ -648,7 +648,7 @@ class PointerType final : public Node {
648648
} else {
649649
const auto *objcProto = static_cast<const ObjCProtoName *>(Pointee);
650650
OB += "id<";
651-
OB += objcProto->Protocol;
651+
OB += objcProto->getProtocol();
652652
OB += ">";
653653
}
654654
}

0 commit comments

Comments
 (0)