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)

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

Declared at: clang/lib/AST/Interp/Record.h:72

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)

Declared at: clang/lib/AST/Interp/Record.h:77

Parameters

unsigned int I

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

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

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)

Declared at: clang/lib/AST/Interp/Record.h:69

Parameters

unsigned int I

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()

Declared at: clang/lib/AST/Interp/Record.h:76

unsigned int getNumFields()

Declared at: clang/lib/AST/Interp/Record.h:68

unsigned int getNumVirtualBases()

Declared at: clang/lib/AST/Interp/Record.h:84

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

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)

Declared at: clang/lib/AST/Interp/Record.h:85

Parameters

unsigned int I

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

Declared at: clang/lib/AST/Interp/Record.h:80