13#ifndef LLVM_CLANG_AST_INTERP_RECORD_H 
   14#define LLVM_CLANG_AST_INTERP_RECORD_H 
   61  unsigned getSize()
 const { 
return BaseSize; }
 
   63  unsigned getFullSize()
 const { 
return BaseSize + VirtualSize; }
 
   74    if (
const auto *CXXDecl = dyn_cast<CXXRecordDecl>(Decl))
 
   75      return CXXDecl->getDestructor();
 
 
   84  llvm::iterator_range<const_field_iter> 
fields()
 const {
 
   85    return llvm::make_range(Fields.begin(), Fields.end());
 
 
   92  llvm::iterator_range<const_base_iter> 
bases()
 const {
 
   93    return llvm::make_range(Bases.begin(), Bases.end());
 
 
  104    return llvm::make_range(VirtualBases.begin(), VirtualBases.end());
 
 
  110  void dump(llvm::raw_ostream &OS, 
unsigned Indentation = 0,
 
  111            unsigned Offset = 0) 
const;
 
  133  llvm::DenseMap<const RecordDecl *, const Base *> BaseMap;
 
  135  llvm::DenseMap<const FieldDecl *, const Field *> FieldMap;
 
  137  llvm::DenseMap<const RecordDecl *, Base *> VirtualBaseMap;
 
  141  unsigned VirtualSize;
 
  145  bool IsAnonymousUnion;
 
 
Defines the C++ Decl subclasses, other than those for templates (found in DeclTemplate....
 
llvm::MachO::Record Record
 
Represents a C++ destructor within a class.
 
Represents a member of a struct/union/class.
 
A (possibly-)qualified type.
 
Represents a struct/union/class.
 
The program contains and links the bytecode for all functions.
 
const RecordDecl * getDecl() const
Returns the underlying declaration.
 
bool isUnion() const
Checks if the record is a union.
 
llvm::SmallVector< Base, 8 > BaseList
Mapping from identifiers to base classes.
 
std::string getName() const
Returns the name of the underlying declaration.
 
const Field * getField(unsigned I) const
 
BaseList::const_iterator const_base_iter
 
unsigned getNumBases() const
 
const CXXDestructorDecl * getDestructor() const
Returns the destructor of the record, if any.
 
const Field * getField(const FieldDecl *FD) const
Returns a field.
 
const Base * getBase(unsigned I) const
 
llvm::iterator_range< const_virtual_iter > virtual_bases() const
 
llvm::SmallVector< Field, 8 > FieldList
Mapping from identifiers to field descriptors.
 
bool hasTrivialDtor() const
Returns true for anonymous unions and records with no destructor or for those with a trivial destruct...
 
llvm::SmallVector< Base, 2 > VirtualBaseList
List of virtual base classes.
 
VirtualBaseList::const_iterator const_virtual_iter
 
const Base * getVirtualBase(unsigned I) const
 
FieldList::const_iterator const_field_iter
 
unsigned getSize() const
Returns the size of the record.
 
llvm::iterator_range< const_base_iter > bases() const
 
const Base * getVirtualBase(const RecordDecl *RD) const
Returns a virtual base descriptor.
 
unsigned getFullSize() const
Returns the full size of the record, including records.
 
unsigned getNumFields() const
 
unsigned getNumVirtualBases() const
 
bool isAnonymousUnion() const
Checks if the record is an anonymous union.
 
llvm::iterator_range< const_field_iter > fields() const
 
const Base * getBase(const RecordDecl *FD) const
Returns a base descriptor.
 
The JSON file list parser is used to communicate input to InstallAPI.
 
const FunctionProtoType * T
 
Describes a memory block created by an allocation site.
 
Describes a record field.
 
bool isUnnamedBitField() const