Skip to content

Commit 6f81c87

Browse files
authored
[clang][bytecode][NFC] Implement MemberPointer::toDiagnosticString() (#106825)
1 parent d884b77 commit 6f81c87

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

clang/lib/AST/ByteCode/Interp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2828,7 +2828,7 @@ inline bool GetIntPtr(InterpState &S, CodePtr OpPC, const Descriptor *Desc) {
28282828
return true;
28292829
}
28302830

2831-
inline bool GetMemberPtr(InterpState &S, CodePtr OpPC, const Decl *D) {
2831+
inline bool GetMemberPtr(InterpState &S, CodePtr OpPC, const ValueDecl *D) {
28322832
S.Stk.push<MemberPointer>(D);
28332833
return true;
28342834
}

clang/lib/AST/ByteCode/MemberPointer.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ class FunctionPointer;
2222
class MemberPointer final {
2323
private:
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

3131
public:
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 {

clang/lib/AST/ByteCode/Opcodes.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def ArgExpr : ArgType { let Name = "const Expr *"; }
6262
def ArgOffsetOfExpr : ArgType { let Name = "const OffsetOfExpr *"; }
6363
def ArgDeclRef : ArgType { let Name = "const DeclRefExpr *"; }
6464
def ArgCCI : ArgType { let Name = "const ComparisonCategoryInfo *"; }
65-
def ArgDecl : ArgType { let Name = "const Decl*"; }
65+
def ArgValueDecl : ArgType { let Name = "const ValueDecl*"; }
6666
def ArgVarDecl : ArgType { let Name = "const VarDecl*"; }
6767
def ArgDesc : ArgType { let Name = "const Descriptor *"; }
6868
def ArgPrimType : ArgType { let Name = "PrimType"; }
@@ -756,7 +756,7 @@ def Memcpy : Opcode;
756756
def ToMemberPtr : Opcode;
757757
def CastMemberPtrPtr : Opcode;
758758
def GetMemberPtr : Opcode {
759-
let Args = [ArgDecl];
759+
let Args = [ArgValueDecl];
760760
}
761761
def GetMemberPtrBase : Opcode;
762762
def GetMemberPtrDecl : Opcode;

0 commit comments

Comments
 (0)