class Record
Declaration
class Record { /* full declaration omitted */ };
Description
Structure/Class descriptor.
Declared at: clang/lib/AST/Interp/Record.h:23
Member Variables
- private const clang::RecordDecl* Decl
- Original declaration.
- private clang::interp::Record::BaseList Bases
- List of all base classes.
- private clang::interp::Record::FieldList Fields
- List of all the fields in the record.
- private clang::interp::Record::VirtualBaseList VirtualBases
- List o fall virtual bases.
- private llvm::DenseMap<const RecordDecl*, Base*> BaseMap
- Mapping from declarations to bases.
- private llvm::DenseMap<const FieldDecl*, Field*> FieldMap
- Mapping from field identifiers to descriptors.
- private llvm::DenseMap<const RecordDecl*, Base*> VirtualBaseMap
- Mapping from declarations to virtual bases.
- private unsigned int BaseSize
- Mapping from Size of the structure.
- private unsigned int VirtualSize
- Size of all virtual bases.
Method Overview
- private Record(const clang::RecordDecl *, clang::interp::Record::BaseList && Bases, clang::interp::Record::FieldList && Fields, clang::interp::Record::VirtualBaseList && VirtualBases, unsigned int VirtualSize, unsigned int BaseSize)
- public llvm::iterator_range<const_base_iter> bases() const
- public llvm::iterator_range<const_field_iter> fields() const
- public clang::interp::Record::Base * getBase(unsigned int I)
- public const clang::interp::Record::Base * getBase(const clang::RecordDecl * FD) const
- public const clang::RecordDecl * getDecl() const
- public const clang::interp::Record::Field * getField(const clang::FieldDecl * FD) const
- public clang::interp::Record::Field * getField(unsigned int I)
- public unsigned int getFullSize() const
- public unsigned int getNumBases()
- public unsigned int getNumFields()
- public unsigned int getNumVirtualBases()
- public unsigned int getSize() const
- public const clang::interp::Record::Base * getVirtualBase(const clang::RecordDecl * RD) const
- public clang::interp::Record::Base * getVirtualBase(unsigned int I)
- public bool isUnion() const
- public llvm::iterator_range<const_virtual_iter> virtual_bases() const
Methods
¶Record(const clang::RecordDecl*,
clang::interp::Record::BaseList&& Bases,
clang::interp::Record::FieldList&& Fields,
clang::interp::Record::VirtualBaseList&&
VirtualBases,
unsigned int VirtualSize,
unsigned int BaseSize)
Record(const clang::RecordDecl*,
clang::interp::Record::BaseList&& Bases,
clang::interp::Record::FieldList&& Fields,
clang::interp::Record::VirtualBaseList&&
VirtualBases,
unsigned int VirtualSize,
unsigned int BaseSize)
Description
Constructor used by Program to create record descriptors.
Declared at: clang/lib/AST/Interp/Record.h:89
Parameters
- const clang::RecordDecl*
- clang::interp::Record::BaseList&& Bases
- clang::interp::Record::FieldList&& Fields
- clang::interp::Record::VirtualBaseList&& VirtualBases
- unsigned int VirtualSize
- unsigned int BaseSize
¶llvm::iterator_range<const_base_iter> bases()
const
llvm::iterator_range<const_base_iter> bases()
const
Declared at: clang/lib/AST/Interp/Record.h:72
¶llvm::iterator_range<const_field_iter> fields()
const
llvm::iterator_range<const_field_iter> fields()
const
Declared at: clang/lib/AST/Interp/Record.h:64
¶clang::interp::Record::Base* getBase(
unsigned int I)
clang::interp::Record::Base* getBase(
unsigned int I)
Declared at: clang/lib/AST/Interp/Record.h:77
Parameters
- unsigned int I
¶const clang::interp::Record::Base* getBase(
const clang::RecordDecl* FD) const
const clang::interp::Record::Base* getBase(
const clang::RecordDecl* FD) const
Description
Returns a base descriptor.
Declared at: clang/lib/AST/Interp/Record.h:59
Parameters
- const clang::RecordDecl* FD
¶const clang::RecordDecl* getDecl() const
const clang::RecordDecl* getDecl() const
Description
Returns the underlying declaration.
Declared at: clang/lib/AST/Interp/Record.h:49
¶const clang::interp::Record::Field* getField(
const clang::FieldDecl* FD) const
const clang::interp::Record::Field* getField(
const clang::FieldDecl* FD) const
Description
Returns a field.
Declared at: clang/lib/AST/Interp/Record.h:57
Parameters
- const clang::FieldDecl* FD
¶clang::interp::Record::Field* getField(
unsigned int I)
clang::interp::Record::Field* getField(
unsigned int I)
Declared at: clang/lib/AST/Interp/Record.h:69
Parameters
- unsigned int I
¶unsigned int getFullSize() const
unsigned int getFullSize() const
Description
Returns the full size of the record, including records.
Declared at: clang/lib/AST/Interp/Record.h:55
¶unsigned int getNumBases()
unsigned int getNumBases()
Declared at: clang/lib/AST/Interp/Record.h:76
¶unsigned int getNumFields()
unsigned int getNumFields()
Declared at: clang/lib/AST/Interp/Record.h:68
¶unsigned int getNumVirtualBases()
unsigned int getNumVirtualBases()
Declared at: clang/lib/AST/Interp/Record.h:84
¶unsigned int getSize() const
unsigned int getSize() const
Description
Returns the size of the record.
Declared at: clang/lib/AST/Interp/Record.h:53
¶const clang::interp::Record::Base* getVirtualBase(
const clang::RecordDecl* RD) const
const clang::interp::Record::Base* getVirtualBase(
const clang::RecordDecl* RD) const
Description
Returns a virtual base descriptor.
Declared at: clang/lib/AST/Interp/Record.h:61
Parameters
- const clang::RecordDecl* RD
¶clang::interp::Record::Base* getVirtualBase(
unsigned int I)
clang::interp::Record::Base* getVirtualBase(
unsigned int I)
Declared at: clang/lib/AST/Interp/Record.h:85
Parameters
- unsigned int I
¶bool isUnion() const
bool isUnion() const
Description
Checks if the record is a union.
Declared at: clang/lib/AST/Interp/Record.h:51
¶llvm::iterator_range<const_virtual_iter>
virtual_bases() const
llvm::iterator_range<const_virtual_iter>
virtual_bases() const
Declared at: clang/lib/AST/Interp/Record.h:80