Skip to content

Commit 8979644

Browse files
committed
[clang][Interp][NFC] Add InlineDescriptor::dump()
1 parent 2308d46 commit 8979644

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

clang/lib/AST/Interp/Descriptor.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ struct InlineDescriptor {
8282
InlineDescriptor(const Descriptor *D)
8383
: Offset(sizeof(InlineDescriptor)), IsConst(false), IsInitialized(false),
8484
IsBase(false), IsActive(false), IsFieldMutable(false), Desc(D) {}
85+
86+
void dump() const { dump(llvm::errs()); }
87+
void dump(llvm::raw_ostream &OS) const;
8588
};
8689

8790
/// Describes a memory block created by an allocation site.

clang/lib/AST/Interp/Disasm.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,25 @@ LLVM_DUMP_METHOD void Descriptor::dump(llvm::raw_ostream &OS) const {
208208
OS << " dummy";
209209
}
210210

211+
LLVM_DUMP_METHOD void InlineDescriptor::dump(llvm::raw_ostream &OS) const {
212+
{
213+
ColorScope SC(OS, true, {llvm::raw_ostream::BLUE, true});
214+
OS << "InlineDescriptor " << (const void *)this << "\n";
215+
}
216+
OS << "Offset: " << Offset << "\n";
217+
OS << "IsConst: " << IsConst << "\n";
218+
OS << "IsInitialized: " << IsInitialized << "\n";
219+
OS << "IsBase: " << IsBase << "\n";
220+
OS << "IsActive: " << IsActive << "\n";
221+
OS << "IsFieldMutable: " << IsFieldMutable << "\n";
222+
OS << "Desc: ";
223+
if (Desc)
224+
Desc->dump(OS);
225+
else
226+
OS << "nullptr";
227+
OS << "\n";
228+
}
229+
211230
LLVM_DUMP_METHOD void InterpFrame::dump(llvm::raw_ostream &OS,
212231
unsigned Indent) const {
213232
unsigned Spaces = Indent * 2;

0 commit comments

Comments
 (0)