clang API Documentation

clang::CXXBaseOrMemberInitializer Class Reference

#include <DeclCXX.h>

Collaboration diagram for clang::CXXBaseOrMemberInitializer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CXXBaseOrMemberInitializer (ASTContext &Context, TypeSourceInfo *TInfo, bool IsVirtual, SourceLocation L, Expr *Init, SourceLocation R, SourceLocation EllipsisLoc)
 CXXBaseOrMemberInitializer - Creates a new base-class initializer.
 CXXBaseOrMemberInitializer (ASTContext &Context, FieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R)
 CXXBaseOrMemberInitializer - Creates a new member initializer.
 CXXBaseOrMemberInitializer (ASTContext &Context, IndirectFieldDecl *Member, SourceLocation MemberLoc, SourceLocation L, Expr *Init, SourceLocation R)
bool isBaseInitializer () const
bool isMemberInitializer () const
bool isAnyMemberInitializer () const
bool isIndirectMemberInitializer () const
bool isPackExpansion () const
 Determine whether this initializer is a pack expansion.
SourceLocation getEllipsisLoc () const
TypeLoc getBaseClassLoc () const
const TypegetBaseClass () const
TypegetBaseClass ()
bool isBaseVirtual () const
 Returns whether the base is virtual or not.
TypeSourceInfogetBaseClassInfo () const
 Returns the declarator information for a base class initializer.
FieldDeclgetMember () const
FieldDeclgetAnyMember () const
IndirectFieldDeclgetIndirectMember () const
SourceLocation getMemberLocation () const
SourceLocation getSourceLocation () const
 Determine the source location of the initializer.
SourceRange getSourceRange () const
 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)
ExprgetInit () const

Static Public Member Functions

static CXXBaseOrMemberInitializerCreate (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

CXXBaseOrMemberInitializer - 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 1123 of file DeclCXX.h.


Constructor & Destructor Documentation

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

CXXBaseOrMemberInitializer - Creates a new base-class initializer.

Definition at line 1003 of file DeclCXX.cpp.

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

CXXBaseOrMemberInitializer - Creates a new member initializer.

Definition at line 1014 of file DeclCXX.cpp.

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

Definition at line 1024 of file DeclCXX.cpp.


Member Function Documentation

CXXBaseOrMemberInitializer * CXXBaseOrMemberInitializer::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 1048 of file DeclCXX.cpp.

References clang::ASTContext::Allocate().

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

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

Definition at line 1327 of file DeclCXX.h.

References getNumArrayIndices().

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

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

Definition at line 1323 of file DeclCXX.h.

References getNumArrayIndices().

Referenced by clang::ASTWriter::AddCXXBaseOrMemberInitializers(), EmitAggMemberInitializer(), and EmitMemberInitializer().

Type * CXXBaseOrMemberInitializer::getBaseClass (  ) 

Definition at line 1070 of file DeclCXX.cpp.

References isBaseInitializer().

const Type * CXXBaseOrMemberInitializer::getBaseClass (  )  const

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

Definition at line 1077 of file DeclCXX.cpp.

References isBaseInitializer().

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

TypeSourceInfo* clang::CXXBaseOrMemberInitializer::getBaseClassInfo (  )  const [inline]

Returns the declarator information for a base class initializer.

Definition at line 1249 of file DeclCXX.h.

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

TypeLoc CXXBaseOrMemberInitializer::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 1063 of file DeclCXX.cpp.

References isBaseInitializer().

Referenced by getSourceLocation().

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

Definition at line 1226 of file DeclCXX.h.

References isPackExpansion().

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

IndirectFieldDecl* clang::CXXBaseOrMemberInitializer::getIndirectMember (  )  const [inline]
Expr* clang::CXXBaseOrMemberInitializer::getInit (  )  const [inline]
SourceLocation clang::CXXBaseOrMemberInitializer::getLParenLoc (  )  const [inline]
FieldDecl* clang::CXXBaseOrMemberInitializer::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 1256 of file DeclCXX.h.

References isMemberInitializer().

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

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

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

Definition at line 1317 of file DeclCXX.h.

Referenced by clang::ASTWriter::AddCXXBaseOrMemberInitializers(), EmitAggMemberInitializer(), EmitMemberInitializer(), getArrayIndex(), and setArrayIndex().

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

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

Definition at line 1294 of file DeclCXX.h.

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

SourceRange CXXBaseOrMemberInitializer::getSourceRange (  )  const

Determine the source range covering the entire initializer.

Definition at line 1091 of file DeclCXX.cpp.

References getRParenLoc(), and getSourceLocation().

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

Returns whether the base is virtual or not.

Definition at line 1242 of file DeclCXX.h.

References isBaseInitializer().

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

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

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

Definition at line 1210 of file DeclCXX.h.

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

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

Determine whether this initializer is a pack expansion.

Definition at line 1221 of file DeclCXX.h.

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

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

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

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

Definition at line 1290 of file DeclCXX.h.

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

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

Definition at line 1331 of file DeclCXX.h.

References getNumArrayIndices().

void clang::CXXBaseOrMemberInitializer::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 1301 of file DeclCXX.h.

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


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