clang API Documentation
TagDecl - Represents the declaration of a struct/union/class/enum. More...
#include <Decl.h>
Public Types | |
typedef TagTypeKind | TagKind |
typedef redeclarable_base::redecl_range | redecl_range |
typedef redeclarable_base::redecl_iterator | redecl_iterator |
Public Member Functions | |
SourceLocation | getRBraceLoc () const |
void | setRBraceLoc (SourceLocation L) |
SourceLocation | getInnerLocStart () const |
SourceLocation | getOuterLocStart () const |
SourceRange | getSourceRange () const override LLVM_READONLY |
Source range that this declaration covers. | |
TagDecl * | getCanonicalDecl () override |
Retrieves the "canonical" declaration of the given declaration. | |
const TagDecl * | getCanonicalDecl () const |
bool | isThisDeclarationADefinition () const |
bool | isCompleteDefinition () const |
bool | isCompleteDefinitionRequired () const |
Return true if this complete decl is required to be complete for some existing use. | |
bool | isBeingDefined () const |
isBeingDefined - Return true if this decl is currently being defined. | |
bool | isEmbeddedInDeclarator () const |
void | setEmbeddedInDeclarator (bool isInDeclarator) |
bool | isFreeStanding () const |
void | setFreeStanding (bool isFreeStanding=true) |
bool | isDependentType () const |
Whether this declaration declares a type that is dependent, i.e., a type that somehow depends on template parameters. | |
void | startDefinition () |
Starts the definition of this tag declaration. | |
TagDecl * | getDefinition () const |
void | setCompleteDefinition (bool V) |
void | setCompleteDefinitionRequired (bool V=true) |
StringRef | getKindName () const |
TagKind | getTagKind () const |
void | setTagKind (TagKind TK) |
bool | isStruct () const |
bool | isInterface () const |
bool | isClass () const |
bool | isUnion () const |
bool | isEnum () const |
bool | hasNameForLinkage () const |
bool | hasDeclaratorForAnonDecl () const |
DeclaratorDecl * | getDeclaratorForAnonDecl () const |
TypedefNameDecl * | getTypedefNameForAnonDecl () const |
void | setDeclaratorForAnonDecl (DeclaratorDecl *DD) |
void | setTypedefNameForAnonDecl (TypedefNameDecl *TDD) |
NestedNameSpecifier * | getQualifier () const |
Retrieve the nested-name-specifier that qualifies the name of this declaration, if it was present in the source. | |
NestedNameSpecifierLoc | getQualifierLoc () const |
Retrieve the nested-name-specifier (with source-location information) that qualifies the name of this declaration, if it was present in the source. | |
void | setQualifierInfo (NestedNameSpecifierLoc QualifierLoc) |
unsigned | getNumTemplateParameterLists () const |
TemplateParameterList * | getTemplateParameterList (unsigned i) const |
void | setTemplateParameterListsInfo (ASTContext &Context, unsigned NumTPLists, TemplateParameterList **TPLists) |
Static Public Member Functions | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
static DeclContext * | castToDeclContext (const TagDecl *D) |
static TagDecl * | castFromDeclContext (const DeclContext *DC) |
Protected Types | |
typedef Redeclarable< TagDecl > | redeclarable_base |
Protected Member Functions | |
TagDecl (Kind DK, TagKind TK, const ASTContext &C, DeclContext *DC, SourceLocation L, IdentifierInfo *Id, TagDecl *PrevDecl, SourceLocation StartL) | |
TagDecl * | getNextRedeclarationImpl () override |
Returns the next redeclaration or itself if this is the only decl. | |
TagDecl * | getPreviousDeclImpl () override |
Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain. | |
TagDecl * | getMostRecentDeclImpl () override |
Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain. | |
void | completeDefinition () |
Completes the definition of this tag declaration. | |
Protected Attributes | |
bool | IsBeingDefined: 1 |
IsBeingDefined - True if this is currently being defined. | |
unsigned | NumPositiveBits: 8 |
unsigned | NumNegativeBits: 8 |
bool | IsScoped: 1 |
bool | IsScopedUsingClassTag: 1 |
bool | IsFixed: 1 |
bool | MayHaveOutOfDateDef: 1 |
Indicates whether it is possible for declarations of this kind to have an out-of-date definition. | |
bool | IsCompleteDefinitionRequired: 1 |
Friends | |
class | ASTDeclReader |
class | ASTDeclWriter |
TagDecl - Represents the declaration of a struct/union/class/enum.
typedef redeclarable_base::redecl_iterator clang::TagDecl::redecl_iterator |
Reimplemented from clang::Redeclarable< TagDecl >.
typedef Redeclarable<TagDecl> clang::TagDecl::redeclarable_base [protected] |
typedef TagTypeKind clang::TagDecl::TagKind |
clang::TagDecl::TagDecl | ( | Kind | DK, |
TagKind | TK, | ||
const ASTContext & | C, | ||
DeclContext * | DC, | ||
SourceLocation | L, | ||
IdentifierInfo * | Id, | ||
TagDecl * | PrevDecl, | ||
SourceLocation | StartL | ||
) | [inline, protected] |
Definition at line 2670 of file Decl.h.
References clang::TTK_Enum.
static TagDecl* clang::TagDecl::castFromDeclContext | ( | const DeclContext * | DC | ) | [inline, static] |
Reimplemented from clang::Decl.
Definition at line 2876 of file Decl.h.
Referenced by ValidDuplicateEnum().
static DeclContext* clang::TagDecl::castToDeclContext | ( | const TagDecl * | D | ) | [inline, static] |
static bool clang::TagDecl::classof | ( | const Decl * | D | ) | [inline, static] |
Reimplemented from clang::TypeDecl.
Reimplemented in clang::EnumDecl, clang::ClassTemplatePartialSpecializationDecl, clang::CXXRecordDecl, and clang::ClassTemplateSpecializationDecl.
Definition at line 2870 of file Decl.h.
References clang::Decl::getKind().
Referenced by clang::RecordDecl::RecordDecl().
static bool clang::TagDecl::classofKind | ( | Kind | K | ) | [inline, static] |
Reimplemented from clang::TypeDecl.
Reimplemented in clang::EnumDecl, clang::ClassTemplatePartialSpecializationDecl, clang::CXXRecordDecl, and clang::ClassTemplateSpecializationDecl.
void TagDecl::completeDefinition | ( | ) | [protected] |
Completes the definition of this tag declaration.
This is a helper function for derived classes.
Reimplemented in clang::CXXRecordDecl.
Definition at line 3372 of file Decl.cpp.
References clang::Decl::getASTMutationListener(), and IsBeingDefined.
Referenced by clang::Sema::ActOnCapturedRegionEnd(), clang::Sema::ActOnFields(), clang::EnumDecl::completeDefinition(), CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), clang::CodeGen::CodeGenModule::GetAddrOfConstantString(), clang::ASTContext::getBlockDescriptorExtendedType(), clang::ASTContext::getBlockDescriptorType(), clang::ASTContext::getCFConstantStringType(), clang::CodeGen::CodeGenModule::getObjCFastEnumerationStateType(), and clang::ASTNodeImporter::ImportDefinition().
TagDecl * TagDecl::getCanonicalDecl | ( | ) | [override, virtual] |
Retrieves the "canonical" declaration of the given declaration.
Reimplemented from clang::Decl.
Reimplemented in clang::EnumDecl, and clang::CXXRecordDecl.
Definition at line 3350 of file Decl.cpp.
References clang::Redeclarable< TagDecl >::getFirstDecl().
Referenced by clang::EnumDecl::getCanonicalDecl(), and clang::Sema::SetCtorInitializers().
const TagDecl* clang::TagDecl::getCanonicalDecl | ( | ) | const [inline] |
Reimplemented from clang::Decl.
Reimplemented in clang::EnumDecl, and clang::CXXRecordDecl.
DeclaratorDecl* clang::TagDecl::getDeclaratorForAnonDecl | ( | ) | const [inline] |
Definition at line 2828 of file Decl.h.
Referenced by clang::Sema::BuildVariableInstantiation(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTDeclWriter::VisitRecordDecl(), and clang::ASTDeclWriter::VisitTagDecl().
TagDecl * TagDecl::getDefinition | ( | ) | const |
getDefinition - Returns the TagDecl that actually defines this struct/union/class/enum. When determining whether or not a struct/union/class/enum has a definition, one should use this method as opposed to 'isDefinition'. 'isDefinition' indicates whether or not a specific TagDecl is defining declaration, not whether or not the struct/union/class/enum type is defined. This method returns NULL if there is no TagDecl that defines the struct/union/class/enum.
Reimplemented in clang::RecordDecl, clang::EnumDecl, and clang::CXXRecordDecl.
Definition at line 3384 of file Decl.cpp.
References clang::NamedDecl::getIdentifier(), isCompleteDefinition(), MayHaveOutOfDateDef, clang::Redeclarable< TagDecl >::redecls(), and clang::Decl::updateOutOfDate().
Referenced by clang::Sema::ActOnTag(), clang::serialization::getDefinitiveDeclContext(), clang::DeclContext::getPrimaryContext(), and clang::Sema::isAcceptableTagRedeclaration().
SourceLocation clang::TagDecl::getInnerLocStart | ( | ) | const [inline] |
getInnerLocStart - Return SourceLocation representing start of source range ignoring outer template declarations.
Definition at line 2714 of file Decl.h.
Referenced by clang::Sema::InstantiateClass().
StringRef clang::TagDecl::getKindName | ( | ) | const [inline] |
Definition at line 2789 of file Decl.h.
References clang::TypeWithKeyword::getTagTypeKindName().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnTagTemplateIdType(), clang::CodeGen::CodeGenTypes::addRecordTypeName(), clang::Sema::CheckClassTemplate(), and clang::Sema::CheckFriendTypeDecl().
TagDecl* clang::TagDecl::getMostRecentDeclImpl | ( | ) | [inline, override, protected, virtual] |
Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain.
Reimplemented from clang::Decl.
TagDecl* clang::TagDecl::getNextRedeclarationImpl | ( | ) | [inline, override, protected, virtual] |
Returns the next redeclaration or itself if this is the only decl.
Decl subclasses that can be redeclared should override this method so that Decl::redecl_iterator can iterate over them.
Reimplemented from clang::Decl.
unsigned clang::TagDecl::getNumTemplateParameterLists | ( | ) | const [inline] |
SourceLocation TagDecl::getOuterLocStart | ( | ) | const |
getOuterLocStart - Return SourceLocation representing start of source range taking into account any outer template declarations.
Definition at line 3341 of file Decl.cpp.
References getTemplateOrInnerLocStart().
Referenced by getSourceRange().
TagDecl* clang::TagDecl::getPreviousDeclImpl | ( | ) | [inline, override, protected, virtual] |
Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain.
Reimplemented from clang::Decl.
NestedNameSpecifier* clang::TagDecl::getQualifier | ( | ) | const [inline] |
NestedNameSpecifierLoc clang::TagDecl::getQualifierLoc | ( | ) | const [inline] |
Retrieve the nested-name-specifier (with source-location information) that qualifies the name of this declaration, if it was present in the source.
Definition at line 2852 of file Decl.h.
Referenced by clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), clang::ASTNodeImporter::VisitEnumDecl(), and clang::ASTNodeImporter::VisitRecordDecl().
SourceLocation clang::TagDecl::getRBraceLoc | ( | ) | const [inline] |
Definition at line 2709 of file Decl.h.
Referenced by clang::ClassTemplateSpecializationDecl::getSourceRange(), clang::Sema::InstantiateClass(), clang::TemplateDeclInstantiator::InstantiateEnumDefinition(), and clang::ASTDeclWriter::VisitTagDecl().
SourceRange TagDecl::getSourceRange | ( | ) | const [override, virtual] |
Source range that this declaration covers.
Reimplemented from clang::TypeDecl.
Reimplemented in clang::ClassTemplateSpecializationDecl.
Definition at line 3345 of file Decl.cpp.
References clang::Decl::getLocation(), getOuterLocStart(), and clang::SourceLocation::isValid().
Referenced by assignInheritanceModel(), and clang::Sema::AttachBaseSpecifiers().
TagKind clang::TagDecl::getTagKind | ( | ) | const [inline] |
Definition at line 2793 of file Decl.h.
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnStartCXXMemberDeclarations(), clang::Sema::AttachBaseSpecifiers(), clang::Sema::CheckBaseSpecifier(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckConstexprFunctionDecl(), clang::Sema::CheckFriendTypeDecl(), clang::Sema::InstantiateClass(), clang::TemplateDeclInstantiator::InstantiateClassTemplatePartialSpecialization(), clang::Sema::isAcceptableTagRedeclaration(), isCFStringType(), clang::CXXRecordDecl::isCLike(), isSameEntity(), IsStructurallyEquivalent(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::Sema::RequireLiteralType(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::ASTDeclWriter::VisitTagDecl().
TemplateParameterList* clang::TagDecl::getTemplateParameterList | ( | unsigned | i | ) | const [inline] |
TypedefNameDecl* clang::TagDecl::getTypedefNameForAnonDecl | ( | ) | const [inline] |
Definition at line 2833 of file Decl.h.
Referenced by clang::CodeGen::CodeGenTypes::addRecordTypeName(), HandleTagNumbering(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::Sema::ParseTypedefDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::ASTDeclWriter::VisitTagDecl().
bool clang::TagDecl::hasDeclaratorForAnonDecl | ( | ) | const [inline] |
Definition at line 2824 of file Decl.h.
Referenced by clang::Sema::BuildVariableInstantiation().
bool clang::TagDecl::hasNameForLinkage | ( | ) | const [inline] |
Is this tag type named, either directly or via being defined in a typedef of this type?
C++11 [basic.link]p8: A type is said to have linkage if and only if:
C does not have an analogous rule, but the same concept is nonetheless useful in some places.
Definition at line 2820 of file Decl.h.
Referenced by clang::Sema::BuildVariableInstantiation(), computeCachedProperties(), findCommonEnumForBlockReturns(), and clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl().
bool clang::TagDecl::isBeingDefined | ( | ) | const [inline] |
isBeingDefined - Return true if this decl is currently being defined.
Definition at line 2745 of file Decl.h.
Referenced by clang::Sema::ActOnTagDefinitionError(), clang::Sema::ActOnTagFinishDefinition(), CanDeclareSpecialMemberFunction(), clang::Sema::CheckOverridingFunctionExceptionSpec(), CreateNewFunctionDecl(), DiagnoseUninstantiableTemplate(), clang::DeclContext::getPrimaryContext(), clang::ASTNodeImporter::ImportDefinition(), clang::TagType::isBeingDefined(), and clang::Sema::isThisOutsideMemberFunctionBody().
bool clang::TagDecl::isClass | ( | ) | const [inline] |
Definition at line 2801 of file Decl.h.
References clang::TTK_Class.
Referenced by getAccessFlag(), clang::Type::isStructureOrClassType(), and isTBAAPathStruct().
bool clang::TagDecl::isCompleteDefinition | ( | ) | const [inline] |
isCompleteDefinition - Return true if this decl has its body fully specified.
Definition at line 2734 of file Decl.h.
Referenced by clang::ASTWriter::AddedCXXImplicitMember(), clang::Sema::checkMSInheritanceAttrOnDefinition(), clang::EnumDecl::completeDefinition(), clang::ASTWriter::CompletedTagDefinition(), clang::CodeGen::CodeGenTypes::ConvertRecordDeclType(), clang::CodeGen::CodeGenTypes::ConvertType(), DiagnoseReinterpretUpDownCast(), clang::ento::MemRegion::getAsOffset(), clang::ASTContext::getASTRecordLayout(), GetDeclSpecTypeForDeclarator(), getDefinition(), handleTransparentUnionAttr(), clang::ASTImporter::ImportContext(), clang::TagTypeLoc::isDefinition(), IsIncompleteClassType(), clang::Type::isIncompleteType(), LookupDirect(), MethodsAndNestedClassesComplete(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::Decl::printGroup(), clang::Sema::RequireCompleteDeclContext(), clang::Sema::RequireLiteralType(), TypeIsInnerPointer(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitRecordDecl(), and clang::ASTDeclWriter::VisitTagDecl().
bool clang::TagDecl::isCompleteDefinitionRequired | ( | ) | const [inline] |
Return true if this complete decl is required to be complete for some existing use.
Definition at line 2740 of file Decl.h.
Referenced by shouldOmitDefinition(), and clang::ASTDeclWriter::VisitTagDecl().
bool clang::TagDecl::isDependentType | ( | ) | const [inline] |
Whether this declaration declares a type that is dependent, i.e., a type that somehow depends on template parameters.
Definition at line 2764 of file Decl.h.
Referenced by clang::Sema::ActOnEnumBody(), clang::Sema::ActOnFields(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckDelayedMemberExceptionSpecs(), clang::Sema::CheckEnumConstant(), clang::Sema::CheckOverridingFunctionExceptionSpec(), CreateNewFunctionDecl(), clang::Sema::SetDeclDefaulted(), clang::Sema::ShouldDeleteSpecialMember(), and clang::CodeGen::CodeGenTypes::UpdateCompletedType().
bool clang::TagDecl::isEmbeddedInDeclarator | ( | ) | const [inline] |
Definition at line 2749 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitTagDecl().
bool clang::TagDecl::isEnum | ( | ) | const [inline] |
Definition at line 2803 of file Decl.h.
References clang::TTK_Enum.
Referenced by clang::Sema::ActOnExplicitInstantiation().
bool clang::TagDecl::isFreeStanding | ( | ) | const [inline] |
Definition at line 2756 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitTagDecl().
bool clang::TagDecl::isInterface | ( | ) | const [inline] |
Definition at line 2800 of file Decl.h.
References clang::TTK_Interface.
Referenced by clang::Sema::AttachBaseSpecifiers(), and clang::Type::isStructureOrClassType().
bool clang::TagDecl::isStruct | ( | ) | const [inline] |
Definition at line 2799 of file Decl.h.
References clang::TTK_Struct.
Referenced by canExpandIndirectArgument(), getAccessFlag(), clang::Type::isStructureOrClassType(), and isTBAAPathStruct().
bool clang::TagDecl::isThisDeclarationADefinition | ( | ) | const [inline] |
isThisDeclarationADefinition() - Return true if this declaration is a completion definition of the type. Provided for consistency.
Definition at line 2728 of file Decl.h.
Referenced by clang::ClassTemplateDecl::isThisDeclarationADefinition(), clang::Sema::ParseTypedefDecl(), and clang::ASTDeclWriter::VisitCXXRecordDecl().
bool clang::TagDecl::isUnion | ( | ) | const [inline] |
Definition at line 2802 of file Decl.h.
References clang::TTK_Union.
Referenced by clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnFields(), clang::Sema::BuildAnonymousStructOrUnion(), BuildImplicitMemberInitializer(), clang::Sema::CheckBaseSpecifier(), CheckConstexprCtorInitializer(), clang::Sema::CheckConstexprFunctionBody(), checkDuplicateDefaultInit(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckNontrivialField(), clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), clang::CXXRecordDecl::defaultedDefaultConstructorIsConstexpr(), defaultedSpecialMemberIsConstexpr(), diagnoseUnreadableFields(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), EmitNullConstant(), clang::CodeGen::CodeGenFunction::EnterDtorCleanups(), EvaluateBinaryTypeTrait(), findSubobject(), getAccessFlag(), clang::ento::MemRegion::getAsOffset(), getTypeExpansion(), HandleClassZeroInitialization(), HandleConstructorCall(), handleTransparentUnionAttr(), clang::CXXRecordDecl::hasUninitializedReferenceMember(), InjectAnonymousStructOrUnionMembers(), clang::Expr::isConstantInitializer(), clang::ABIInfo::isHomogeneousAggregate(), isIntegerLikeType(), isReadByLvalueToRvalueConversion(), IsStructurallyEquivalent(), IsTailPaddedMemberArray(), isUnionField(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::RecordDecl::mayInsertExtraPadding(), clang::Sema::ParsedFreeStandingDeclSpec(), performLifetimeExtension(), clang::Sema::SetCtorInitializers(), and tryMatchRecordTypes().
void clang::TagDecl::setCompleteDefinition | ( | bool | V | ) | [inline] |
Definition at line 2783 of file Decl.h.
Referenced by clang::ASTDeclReader::VisitTagDecl().
void clang::TagDecl::setCompleteDefinitionRequired | ( | bool | V = true | ) | [inline] |
Definition at line 2785 of file Decl.h.
Referenced by clang::ASTDeclReader::VisitTagDecl().
void clang::TagDecl::setDeclaratorForAnonDecl | ( | DeclaratorDecl * | DD | ) | [inline] |
Definition at line 2838 of file Decl.h.
Referenced by clang::Sema::BuildVariableInstantiation().
void clang::TagDecl::setEmbeddedInDeclarator | ( | bool | isInDeclarator | ) | [inline] |
Definition at line 2752 of file Decl.h.
Referenced by GetDeclSpecTypeForDeclarator(), and clang::ASTDeclReader::VisitTagDecl().
void clang::TagDecl::setFreeStanding | ( | bool | isFreeStanding = true | ) | [inline] |
Definition at line 2757 of file Decl.h.
Referenced by clang::Sema::ParsedFreeStandingDeclSpec(), and clang::ASTDeclReader::VisitTagDecl().
void TagDecl::setQualifierInfo | ( | NestedNameSpecifierLoc | QualifierLoc | ) |
Definition at line 3407 of file Decl.cpp.
References clang::ASTContext::Deallocate(), clang::Decl::getASTContext(), and clang::QualifierInfo::QualifierLoc.
Referenced by clang::Sema::ActOnTag(), SetNestedNameSpecifier(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), clang::ASTNodeImporter::VisitEnumDecl(), and clang::ASTNodeImporter::VisitRecordDecl().
void clang::TagDecl::setRBraceLoc | ( | SourceLocation | L | ) | [inline] |
Definition at line 2710 of file Decl.h.
Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnTagFinishDefinition(), clang::Sema::InstantiateClass(), and clang::ASTDeclReader::VisitTagDecl().
void clang::TagDecl::setTagKind | ( | TagKind | TK | ) | [inline] |
Definition at line 2797 of file Decl.h.
Referenced by clang::Sema::InstantiateClass(), and clang::ASTDeclReader::VisitTagDecl().
void TagDecl::setTemplateParameterListsInfo | ( | ASTContext & | Context, |
unsigned | NumTPLists, | ||
TemplateParameterList ** | TPLists | ||
) |
Definition at line 3427 of file Decl.cpp.
References clang::Decl::getASTContext(), and clang::QualifierInfo::setTemplateParameterListsInfo().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnTag(), and clang::Sema::CheckClassTemplate().
void TagDecl::setTypedefNameForAnonDecl | ( | TypedefNameDecl * | TDD | ) |
Definition at line 3352 of file Decl.cpp.
References clang::TypeDecl::getTypeForDecl(), and clang::NamedDecl::isLinkageValid().
Referenced by clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), and clang::Sema::ParseTypedefDecl().
void TagDecl::startDefinition | ( | ) |
Starts the definition of this tag declaration.
This method should be invoked at the beginning of the definition of this tag declaration. It will set the tag type into a state where it is in the process of being defined.
Definition at line 3361 of file Decl.cpp.
References clang::Decl::getASTContext(), IsBeingDefined, and clang::Redeclarable< TagDecl >::redecls().
Referenced by clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnTag(), clang::Sema::CheckClassTemplate(), CreateAAPCSABIBuiltinVaListDecl(), CreateAArch64ABIBuiltinVaListDecl(), clang::Sema::CreateCapturedStmtRecordDecl(), CreatePowerABIBuiltinVaListDecl(), CreateSystemZBuiltinVaListDecl(), CreateX86_64ABIBuiltinVaListDecl(), clang::CodeGen::CodeGenModule::GetAddrOfConstantString(), clang::ASTContext::getBlockDescriptorExtendedType(), clang::ASTContext::getBlockDescriptorType(), clang::ASTContext::getCFConstantStringType(), clang::CodeGen::CodeGenModule::getObjCFastEnumerationStateType(), clang::ASTNodeImporter::ImportDefinition(), clang::Sema::InstantiateClass(), and clang::TemplateDeclInstantiator::InstantiateEnumDefinition().
friend class ASTDeclReader [friend] |
Reimplemented from clang::DeclContext.
Reimplemented in clang::EnumDecl, clang::ClassTemplatePartialSpecializationDecl, clang::CXXRecordDecl, and clang::ClassTemplateSpecializationDecl.
friend class ASTDeclWriter [friend] |
Reimplemented from clang::Redeclarable< TagDecl >.
Reimplemented in clang::ClassTemplatePartialSpecializationDecl, clang::CXXRecordDecl, and clang::ClassTemplateSpecializationDecl.
bool clang::TagDecl::IsBeingDefined [protected] |
IsBeingDefined - True if this is currently being defined.
Definition at line 2608 of file Decl.h.
Referenced by completeDefinition(), clang::CXXRecordDecl::CreateLambda(), and startDefinition().
bool clang::TagDecl::IsCompleteDefinitionRequired [protected] |
bool clang::TagDecl::IsFixed [protected] |
IsFixed - True if this is an enumeration with fixed underlying type. Only possible in C++11, Microsoft extensions, or Objective C mode.
Definition at line 2635 of file Decl.h.
Referenced by clang::ASTDeclReader::VisitEnumDecl().
bool clang::TagDecl::IsScoped [protected] |
IsScoped - True if this tag declaration is a scoped enumeration. Only possible in C++11 mode.
Definition at line 2626 of file Decl.h.
Referenced by clang::ASTDeclReader::VisitEnumDecl().
bool clang::TagDecl::IsScopedUsingClassTag [protected] |
IsScopedUsingClassTag - If this tag declaration is a scoped enum, then this is true if the scoped enum was declared using the class tag, false if it was declared with the struct tag. No meaning is associated if this tag declaration is not a scoped enum.
Definition at line 2631 of file Decl.h.
Referenced by clang::ASTDeclReader::VisitEnumDecl().
bool clang::TagDecl::MayHaveOutOfDateDef [protected] |
Indicates whether it is possible for declarations of this kind to have an out-of-date definition.
This option is only enabled when modules are enabled.
Definition at line 2641 of file Decl.h.
Referenced by clang::CXXRecordDecl::Create(), clang::ClassTemplateSpecializationDecl::Create(), clang::ClassTemplatePartialSpecializationDecl::Create(), clang::EnumDecl::Create(), clang::RecordDecl::Create(), clang::CXXRecordDecl::CreateDeserialized(), clang::ClassTemplateSpecializationDecl::CreateDeserialized(), clang::ClassTemplatePartialSpecializationDecl::CreateDeserialized(), clang::EnumDecl::CreateDeserialized(), clang::RecordDecl::CreateDeserialized(), clang::CXXRecordDecl::CreateLambda(), and getDefinition().
unsigned clang::TagDecl::NumNegativeBits [protected] |
unsigned clang::TagDecl::NumPositiveBits [protected] |