@@ -22,21 +22,21 @@ class FunctionPointer;
2222class MemberPointer final {
2323private:
2424 Pointer Base;
25- const Decl *Dcl = nullptr ;
25+ const ValueDecl *Dcl = nullptr ;
2626 int32_t PtrOffset = 0 ;
2727
28- MemberPointer (Pointer Base, const Decl *Dcl, int32_t PtrOffset)
28+ MemberPointer (Pointer Base, const ValueDecl *Dcl, int32_t PtrOffset)
2929 : Base(Base), Dcl(Dcl), PtrOffset(PtrOffset) {}
3030
3131public:
3232 MemberPointer () = default ;
33- MemberPointer (Pointer Base, const Decl *Dcl) : Base(Base), Dcl(Dcl) {}
33+ MemberPointer (Pointer Base, const ValueDecl *Dcl) : Base(Base), Dcl(Dcl) {}
3434 MemberPointer (uint32_t Address, const Descriptor *D) {
3535 // We only reach this for Address == 0, when creating a null member pointer.
3636 assert (Address == 0 );
3737 }
3838
39- MemberPointer (const Decl *D) : Dcl(D) {
39+ MemberPointer (const ValueDecl *D) : Dcl(D) {
4040 assert ((isa<FieldDecl, IndirectFieldDecl, CXXMethodDecl>(D)));
4141 }
4242
@@ -67,7 +67,7 @@ class MemberPointer final {
6767 }
6868
6969 bool hasDecl () const { return Dcl; }
70- const Decl *getDecl () const { return Dcl; }
70+ const ValueDecl *getDecl () const { return Dcl; }
7171
7272 MemberPointer atInstanceBase (unsigned Offset) const {
7373 if (Base.isZero ())
@@ -96,7 +96,7 @@ class MemberPointer final {
9696 }
9797
9898 std::string toDiagnosticString (const ASTContext &Ctx) const {
99- return " FIXME " ;
99+ return toAPValue (Ctx). getAsString (Ctx, Dcl-> getType ()) ;
100100 }
101101
102102 ComparisonCategoryResult compare (const MemberPointer &RHS) const {
0 commit comments