clang API Documentation

Public Member Functions | Static Public Member Functions
clang::CXXCtorInitializer Class Reference

#include <DeclCXX.h>

List of all members.

Public Member Functions

 CXXCtorInitializer (ASTContext &Context, TypeSourceInfo *TInfo, bool IsVirtual, SourceLocation L, Expr *Init, SourceLocation R, SourceLocation EllipsisLoc)
 CXXCtorInitializer - Creates a new base-class initializer.
 CXXCtorInitializer (ASTContext &Context, FieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R)
 CXXCtorInitializer - Creates a new member initializer.
 CXXCtorInitializer (ASTContext &Context, IndirectFieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R)
 CXXCtorInitializer - Creates a new anonymous field initializer.
 CXXCtorInitializer (ASTContext &Context, TypeSourceInfo *TInfo, SourceLocation L, Expr *Init, SourceLocation R)
 CXXCtorInitializer - Creates a new delegating Initializer.
bool isBaseInitializer () const
bool isMemberInitializer () const
bool isAnyMemberInitializer () const
bool isIndirectMemberInitializer () const
bool isInClassMemberInitializer () const
bool isDelegatingInitializer () const
bool isPackExpansion () const
 Determine whether this initializer is a pack expansion.
SourceLocation getEllipsisLoc () const
TypeLoc getBaseClassLoc () const
const TypegetBaseClass () const
bool isBaseVirtual () const
 Returns whether the base is virtual or not.
TypeSourceInfogetTypeSourceInfo () const
 Returns the declarator information for a base class or delegating initializer.
FieldDeclgetMember () const
FieldDeclgetAnyMember () const
IndirectFieldDeclgetIndirectMember () const
SourceLocation getMemberLocation () const
SourceLocation getSourceLocation () const
 Determine the source location of the initializer.
SourceRange getSourceRange () const LLVM_READONLY
 Determine the source range covering the entire initializer.
bool isWritten () const
int getSourceOrder () const
 Return the source position of the initializer, counting from 0. If the initializer was implicit, -1 is returned.
void setSourceOrder (int pos)
 Set the source order of this initializer. This method can only be called once for each initializer; it cannot be called on an initializer having a positive number of (implicit) array indices.
SourceLocation getLParenLoc () const
SourceLocation getRParenLoc () const
unsigned getNumArrayIndices () const
 Determine the number of implicit array indices used while described an array member initialization.
VarDeclgetArrayIndex (unsigned I)
 Retrieve a particular array index variable used to describe an array member initialization.
const VarDeclgetArrayIndex (unsigned I) const
void setArrayIndex (unsigned I, VarDecl *Index)
ArrayRef< VarDecl * > getArrayIndexes ()
ExprgetInit () const
 Get the initializer. This is 0 if this is an in-class initializer for a non-static data member which has not yet been parsed.

Static Public Member Functions

static CXXCtorInitializerCreate (ASTContext &Context, FieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R, VarDecl **Indices, unsigned NumIndices)
 Creates a new member initializer that optionally contains array indices used to describe an elementwise initialization.

Detailed Description

CXXCtorInitializer - Represents a C++ base or member initializer, which is part of a constructor initializer that initializes one non-static member variable or one base class. For example, in the following, both 'A(a)' and 'f(3.14159)' are member initializers:

 class A { };
 class B : public A {
   float f;
 public:
   B(A& a) : A(a), f(3.14159) { }
 };

Definition at line 1697 of file DeclCXX.h.


Constructor & Destructor Documentation

CXXCtorInitializer::CXXCtorInitializer ( ASTContext Context,
TypeSourceInfo TInfo,
bool  IsVirtual,
SourceLocation  L,
Expr Init,
SourceLocation  R,
SourceLocation  EllipsisLoc 
) [explicit]

CXXCtorInitializer - Creates a new base-class initializer.

Definition at line 1481 of file DeclCXX.cpp.

CXXCtorInitializer::CXXCtorInitializer ( ASTContext Context,
FieldDecl Member,
SourceLocation  MemberLoc,
SourceLocation  L,
Expr Init,
SourceLocation  R 
) [explicit]

CXXCtorInitializer - Creates a new member initializer.

Definition at line 1492 of file DeclCXX.cpp.

CXXCtorInitializer::CXXCtorInitializer ( ASTContext Context,
IndirectFieldDecl Member,
SourceLocation  MemberLoc,
SourceLocation  L,
Expr Init,
SourceLocation  R 
) [explicit]

CXXCtorInitializer - Creates a new anonymous field initializer.

Definition at line 1503 of file DeclCXX.cpp.

CXXCtorInitializer::CXXCtorInitializer ( ASTContext Context,
TypeSourceInfo TInfo,
SourceLocation  L,
Expr Init,
SourceLocation  R 
) [explicit]

CXXCtorInitializer - Creates a new delegating Initializer.

Definition at line 1514 of file DeclCXX.cpp.


Member Function Documentation

CXXCtorInitializer * CXXCtorInitializer::Create ( ASTContext Context,
FieldDecl Member,
SourceLocation  MemberLoc,
SourceLocation  L,
Expr Init,
SourceLocation  R,
VarDecl **  Indices,
unsigned  NumIndices 
) [static]

Creates a new member initializer that optionally contains array indices used to describe an elementwise initialization.

Definition at line 1539 of file DeclCXX.cpp.

References clang::ASTContext::Allocate().

Referenced by BuildImplicitMemberInitializer(), and clang::ASTReader::ReadCXXCtorInitializers().

FieldDecl* clang::CXXCtorInitializer::getAnyMember ( ) const [inline]
VarDecl* clang::CXXCtorInitializer::getArrayIndex ( unsigned  I) [inline]

Retrieve a particular array index variable used to describe an array member initialization.

Definition at line 1907 of file DeclCXX.h.

References getNumArrayIndices().

Referenced by clang::ASTWriter::AddCXXCtorInitializers().

const VarDecl* clang::CXXCtorInitializer::getArrayIndex ( unsigned  I) const [inline]

Definition at line 1911 of file DeclCXX.h.

References getNumArrayIndices().

ArrayRef<VarDecl *> clang::CXXCtorInitializer::getArrayIndexes ( ) [inline]

Definition at line 1919 of file DeclCXX.h.

References getNumArrayIndices().

Referenced by EmitMemberInitializer().

const Type * CXXCtorInitializer::getBaseClass ( ) const

If this is a base class initializer, returns the type of the base class. Otherwise, returns NULL.

Definition at line 1560 of file DeclCXX.cpp.

References isBaseInitializer().

Referenced by clang::Sema::ActOnMemInitializers(), EmitBaseInitializer(), GetKeyForMember(), print_elem(), and clang::Sema::SetCtorInitializers().

TypeLoc CXXCtorInitializer::getBaseClassLoc ( ) const

If this is a base class initializer, returns the type of the base class with location information. Otherwise, returns an NULL type location.

Definition at line 1553 of file DeclCXX.cpp.

References isBaseInitializer().

SourceLocation clang::CXXCtorInitializer::getEllipsisLoc ( ) const [inline]

Definition at line 1813 of file DeclCXX.h.

References isPackExpansion().

Referenced by clang::Sema::InstantiateMemInitializers().

IndirectFieldDecl* clang::CXXCtorInitializer::getIndirectMember ( ) const [inline]
Expr* clang::CXXCtorInitializer::getInit ( ) const [inline]
SourceLocation clang::CXXCtorInitializer::getLParenLoc ( ) const [inline]

Definition at line 1896 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers().

FieldDecl* clang::CXXCtorInitializer::getMember ( ) const [inline]

getMember - If this is a member initializer, returns the declaration of the non-static data member being initialized. Otherwise, returns NULL.

Definition at line 1843 of file DeclCXX.h.

References isMemberInitializer().

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), and clang::Sema::InstantiateMemInitializers().

SourceLocation clang::CXXCtorInitializer::getMemberLocation ( ) const [inline]
unsigned clang::CXXCtorInitializer::getNumArrayIndices ( ) const [inline]

Determine the number of implicit array indices used while described an array member initialization.

Definition at line 1901 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), EmitMemberInitializer(), getArrayIndex(), getArrayIndexes(), and setArrayIndex().

SourceLocation clang::CXXCtorInitializer::getRParenLoc ( ) const [inline]

Definition at line 1897 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), and getSourceRange().

SourceLocation CXXCtorInitializer::getSourceLocation ( ) const
int clang::CXXCtorInitializer::getSourceOrder ( ) const [inline]

Return the source position of the initializer, counting from 0. If the initializer was implicit, -1 is returned.

Definition at line 1878 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers().

SourceRange CXXCtorInitializer::getSourceRange ( ) const

Determine the source range covering the entire initializer.

Definition at line 1580 of file DeclCXX.cpp.

References getAnyMember(), clang::FieldDecl::getInClassInitializer(), getRParenLoc(), getSourceLocation(), and isInClassMemberInitializer().

Referenced by clang::Sema::ActOnMemInitializers().

TypeSourceInfo* clang::CXXCtorInitializer::getTypeSourceInfo ( ) const [inline]

Returns the declarator information for a base class or delegating initializer.

Definition at line 1836 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), DiagnoseBaseOrMemInitializerOrder(), clang::Sema::InstantiateMemInitializers(), and clang::RecursiveASTVisitor< Derived >::TraverseConstructorInitializer().

bool clang::CXXCtorInitializer::isAnyMemberInitializer ( ) const [inline]
bool clang::CXXCtorInitializer::isBaseInitializer ( ) const [inline]
bool clang::CXXCtorInitializer::isBaseVirtual ( ) const [inline]

Returns whether the base is virtual or not.

Definition at line 1828 of file DeclCXX.h.

References isBaseInitializer().

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), and EmitBaseInitializer().

bool clang::CXXCtorInitializer::isDelegatingInitializer ( ) const [inline]

isDelegatingInitializer - Returns true when this initializer is creating a delegating constructor.

Definition at line 1803 of file DeclCXX.h.

Referenced by clang::Sema::ActOnMemInitializers(), clang::ASTWriter::AddCXXCtorInitializers(), clang::Sema::InstantiateMemInitializers(), clang::CXXConstructorDecl::isDelegatingConstructor(), and clang::Sema::SetDelegatingInitializer().

bool clang::CXXCtorInitializer::isInClassMemberInitializer ( ) const [inline]

isInClassMemberInitializer - Returns true when this initializer is an implicit ctor initializer generated for a field with an initializer defined on the member declaration.

Definition at line 1797 of file DeclCXX.h.

Referenced by getSourceLocation(), and getSourceRange().

bool clang::CXXCtorInitializer::isIndirectMemberInitializer ( ) const [inline]
bool clang::CXXCtorInitializer::isMemberInitializer ( ) const [inline]

isMemberInitializer - Returns true when this initializer is initializing a non-static data member.

Definition at line 1784 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), getAnyMember(), getMember(), clang::Sema::InstantiateMemInitializers(), and isAnyMemberInitializer().

bool clang::CXXCtorInitializer::isPackExpansion ( ) const [inline]

Determine whether this initializer is a pack expansion.

Definition at line 1808 of file DeclCXX.h.

References isBaseInitializer(), and clang::SourceLocation::isValid().

Referenced by getEllipsisLoc(), and clang::Sema::InstantiateMemInitializers().

bool clang::CXXCtorInitializer::isWritten ( ) const [inline]

isWritten - Returns true if this initializer is explicitly written in the source code.

Definition at line 1874 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXCtorInitializers(), clang::Sema::InstantiateMemInitializers(), and clang::RecursiveASTVisitor< Derived >::TraverseConstructorInitializer().

void clang::CXXCtorInitializer::setArrayIndex ( unsigned  I,
VarDecl Index 
) [inline]

Definition at line 1915 of file DeclCXX.h.

References getNumArrayIndices().

void clang::CXXCtorInitializer::setSourceOrder ( int  pos) [inline]

Set the source order of this initializer. This method can only be called once for each initializer; it cannot be called on an initializer having a positive number of (implicit) array indices.

Definition at line 1885 of file DeclCXX.h.

Referenced by clang::Sema::ActOnMemInitializers(), and clang::ASTReader::ReadCXXCtorInitializers().


The documentation for this class was generated from the following files: