13 #ifndef LLVM_CLANG_AST_INTERP_RECORD_H 14 #define LLVM_CLANG_AST_INTERP_RECORD_H 53 unsigned getSize()
const {
return BaseSize; }
55 unsigned getFullSize()
const {
return BaseSize + VirtualSize; }
64 llvm::iterator_range<const_field_iter>
fields()
const {
65 return llvm::make_range(Fields.begin(), Fields.end());
72 llvm::iterator_range<const_base_iter>
bases()
const {
73 return llvm::make_range(Bases.begin(), Bases.end());
81 return llvm::make_range(VirtualBases.begin(), VirtualBases.end());
106 llvm::DenseMap<const RecordDecl *, Base *> BaseMap;
108 llvm::DenseMap<const FieldDecl *, Field *> FieldMap;
110 llvm::DenseMap<const RecordDecl *, Base *> VirtualBaseMap;
115 unsigned VirtualSize;
const Base * getBase(const RecordDecl *FD) const
Returns a base descriptor.
llvm::iterator_range< const_virtual_iter > virtual_bases() const
Represents a struct/union/class.
FieldList::const_iterator const_field_iter
Represents a member of a struct/union/class.
const RecordDecl * getDecl() const
Returns the underlying declaration.
Base * getBase(unsigned I)
Structure/Class descriptor.
unsigned getNumVirtualBases()
Base * getVirtualBase(unsigned I)
Field * getField(unsigned I)
Describes a memory block created by an allocation site.
bool isUnion() const
Checks if the record is a union.
BaseList::const_iterator const_base_iter
The program contains and links the bytecode for all functions.
VirtualBaseList::const_iterator const_virtual_iter
unsigned getFullSize() const
Returns the full size of the record, including records.
Dataflow Directional Tag Classes.
llvm::iterator_range< const_field_iter > fields() const
Describes a record field.
llvm::iterator_range< const_base_iter > bases() const
const Field * getField(const FieldDecl *FD) const
Returns a field.
const Base * getVirtualBase(const RecordDecl *RD) const
Returns a virtual base descriptor.
unsigned getSize() const
Returns the size of the record.