clang API Documentation
#include <DeclCXX.h>
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 Type * | getBaseClass () const |
| bool | isBaseVirtual () const |
| Returns whether the base is virtual or not. | |
| TypeSourceInfo * | getTypeSourceInfo () const |
| Returns the declarator information for a base class or delegating initializer. | |
| FieldDecl * | getMember () const |
| FieldDecl * | getAnyMember () const |
| IndirectFieldDecl * | getIndirectMember () 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. | |
| VarDecl * | getArrayIndex (unsigned I) |
| Retrieve a particular array index variable used to describe an array member initialization. | |
| const VarDecl * | getArrayIndex (unsigned I) const |
| void | setArrayIndex (unsigned I, VarDecl *Index) |
| ArrayRef< VarDecl * > | getArrayIndexes () |
| Expr * | getInit () 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 CXXCtorInitializer * | Create (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. | |
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:
| 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.
| 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] |
Definition at line 1848 of file DeclCXX.h.
References clang::IndirectFieldDecl::getAnonField(), isIndirectMemberInitializer(), and isMemberInitializer().
Referenced by clang::Sema::ActOnMemInitializers(), clang::Sema::CodeCompleteConstructorInitializer(), DiagnoseBaseOrMemInitializerOrder(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), getInit(), GetKeyForMember(), getSourceLocation(), getSourceRange(), print_elem(), clang::ento::ExprEngine::ProcessInitializer(), and clang::Sema::SetCtorInitializers().
| 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] |
Definition at line 1856 of file DeclCXX.h.
References isIndirectMemberInitializer().
Referenced by clang::ASTWriter::AddCXXCtorInitializers(), EmitMemberInitializer(), and clang::Sema::InstantiateMemInitializers().
| Expr* clang::CXXCtorInitializer::getInit | ( | ) | const [inline] |
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.
Definition at line 1927 of file DeclCXX.h.
References getAnyMember(), and clang::FieldDecl::getInClassInitializer().
Referenced by clang::ASTWriter::AddCXXCtorInitializers(), EmitBaseInitializer(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod(), clang::Sema::InstantiateMemInitializers(), print_elem(), clang::ento::ExprEngine::ProcessInitializer(), and clang::RecursiveASTVisitor< Derived >::TraverseConstructorInitializer().
| 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] |
Definition at line 1862 of file DeclCXX.h.
Referenced by clang::ASTWriter::AddCXXCtorInitializers(), getSourceLocation(), and clang::Sema::InstantiateMemInitializers().
| 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 |
Determine the source location of the initializer.
Definition at line 1567 of file DeclCXX.cpp.
References getAnyMember(), clang::Decl::getLocation(), getMemberLocation(), isAnyMemberInitializer(), and isInClassMemberInitializer().
Referenced by DiagnoseBaseOrMemInitializerOrder(), getSourceRange(), clang::Sema::InstantiateMemInitializers(), and clang::Sema::SetDelegatingInitializer().
| 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] |
Definition at line 1786 of file DeclCXX.h.
References isIndirectMemberInitializer(), and isMemberInitializer().
Referenced by clang::Sema::ActOnMemInitializers(), clang::Sema::CodeCompleteConstructorInitializer(), DiagnoseBaseOrMemInitializerOrder(), clang::CodeGen::CodeGenFunction::EmitCtorPrologue(), EmitMemberInitializer(), GetKeyForMember(), getSourceLocation(), and clang::ento::ExprEngine::ProcessInitializer().
| bool clang::CXXCtorInitializer::isBaseInitializer | ( | ) | const [inline] |
isBaseInitializer - Returns true when this initializer is initializing a base class.
Definition at line 1778 of file DeclCXX.h.
Referenced by clang::Sema::ActOnMemInitializers(), clang::ASTWriter::AddCXXCtorInitializers(), clang::Sema::CodeCompleteConstructorInitializer(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitCtorPrologue(), getBaseClass(), getBaseClassLoc(), clang::Sema::InstantiateMemInitializers(), isBaseVirtual(), isPackExpansion(), print_elem(), clang::ento::ExprEngine::ProcessInitializer(), and clang::Sema::SetCtorInitializers().
| 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] |
Definition at line 1790 of file DeclCXX.h.
Referenced by EmitMemberInitializer(), getAnyMember(), getIndirectMember(), clang::Sema::InstantiateMemInitializers(), and isAnyMemberInitializer().
| 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().