clang API Documentation
Information about one declarator, including the parsed type information and the identifier. More...
#include <DeclSpec.h>
Information about one declarator, including the parsed type information and the identifier.
When the declarator is fully formed, this is turned into the appropriate Decl object.
Declarators come in two types: normal declarators and abstract declarators. Abstract declarators are used when parsing types, and don't have an identifier. Normal declarators do have ID's.
Instances of this class should be a transient object that lives on the stack, not objects that are allocated in large quantities on the heap.
Definition at line 1540 of file DeclSpec.h.
Definition at line 1542 of file DeclSpec.h.
clang::Declarator::Declarator | ( | const DeclSpec & | ds, |
TheContext | C | ||
) | [inline] |
Definition at line 1623 of file DeclSpec.h.
clang::Declarator::~Declarator | ( | ) | [inline] |
Definition at line 1632 of file DeclSpec.h.
References clear().
void clang::Declarator::AddInnermostTypeInfo | ( | const DeclaratorChunk & | TI | ) | [inline] |
Add a new innermost chunk to this declarator.
Definition at line 1901 of file DeclSpec.h.
Referenced by maybeSynthesizeBlockSignature().
void clang::Declarator::AddTypeInfo | ( | const DeclaratorChunk & | TI, |
ParsedAttributes & | attrs, | ||
SourceLocation | EndLoc | ||
) | [inline] |
AddTypeInfo - Add a chunk to this declarator. Also extend the range to EndLoc, which should be the last token of the chunk.
Definition at line 1889 of file DeclSpec.h.
References getAttributePool(), clang::ParsedAttributes::getList(), clang::ParsedAttributes::getPool(), clang::SourceLocation::isInvalid(), SetRangeEnd(), and clang::AttributePool::takeAllFrom().
Referenced by clang::Sema::ActOnCXXForRangeIdentifier(), and clang::Sema::ImplicitlyDefineFunction().
void clang::Declarator::clear | ( | ) | [inline] |
Reset the contents of this Declarator.
Reimplemented in clang::ParsingDeclarator.
Definition at line 1696 of file DeclSpec.h.
References clang::CXXScopeSpec::clear(), clang::ParsedAttributes::clear(), clang::UnqualifiedId::clear(), and clang::DeclSpec::getSourceRange().
Referenced by ~Declarator().
bool clang::Declarator::diagnoseIdentifier | ( | ) | const [inline] |
diagnoseIdentifier - Return true if the identifier is prohibited and should be diagnosed (because it cannot be anything else).
Definition at line 1781 of file DeclSpec.h.
References AliasDeclContext, AliasTemplateContext, BlockContext, BlockLiteralContext, ConditionContext, Context, ConversionIdContext, CXXCatchContext, CXXNewContext, FileContext, ForContext, KNRTypeListContext, LambdaExprContext, LambdaExprParameterContext, MemberContext, ObjCCatchContext, ObjCParameterContext, ObjCResultContext, PrototypeContext, TemplateParamContext, TemplateTypeArgContext, TrailingReturnContext, and TypeNameContext.
void clang::Declarator::DropFirstTypeObject | ( | ) | [inline] |
Definition at line 1919 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXNew().
void clang::Declarator::ExtendWithDeclSpec | ( | const DeclSpec & | DS | ) | [inline] |
ExtendWithDeclSpec - Extend the declarator source range to include the given declspec, unless its location is invalid. Adopts the range start if the current range start is invalid.
Definition at line 1687 of file DeclSpec.h.
References clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), clang::DeclSpec::getSourceRange(), clang::SourceLocation::isInvalid(), clang::SourceRange::setBegin(), and clang::SourceRange::setEnd().
Expr* clang::Declarator::getAsmLabel | ( | ) | const [inline] |
Definition at line 2102 of file DeclSpec.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), and clang::Sema::ActOnVariableDeclarator().
AttributePool& clang::Declarator::getAttributePool | ( | ) | const [inline] |
Definition at line 1646 of file DeclSpec.h.
References clang::ParsedAttributes::getPool().
Referenced by AddTypeInfo(), takeDeclAttributes(), and transferARCOwnershipToDeclaratorChunk().
const AttributeList* clang::Declarator::getAttributes | ( | ) | const [inline] |
Definition at line 2076 of file DeclSpec.h.
References clang::ParsedAttributes::getList().
Referenced by clang::Sema::checkUnusedDeclAttributes(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), hasAttributes(), hasParsedAttr(), clang::Sema::ProcessDeclAttributes(), and takeDeclAttributes().
AttributeList* clang::Declarator::getAttributes | ( | ) | [inline] |
Definition at line 2077 of file DeclSpec.h.
References clang::ParsedAttributes::getList().
AttributeList*& clang::Declarator::getAttrListRef | ( | ) | [inline] |
Definition at line 2079 of file DeclSpec.h.
References clang::ParsedAttributes::getListRef().
Referenced by distributeFunctionTypeAttrFromDeclarator(), and distributeObjCPointerTypeAttrFromDeclarator().
SourceLocation clang::Declarator::getCommaLoc | ( | ) | const [inline] |
Definition at line 2116 of file DeclSpec.h.
Referenced by warnAboutAmbiguousFunction().
TheContext clang::Declarator::getContext | ( | ) | const [inline] |
Definition at line 1658 of file DeclSpec.h.
References Context.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnTypeName(), ConvertDeclSpecToType(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), isFirstDeclarationOfMember(), isOmittedBlockReturnType(), isStaticMember(), and warnAboutAmbiguousFunction().
void clang::Declarator::getCXX11AttributeRanges | ( | SmallVectorImpl< SourceRange > & | Ranges | ) | [inline] |
Return a source range list of C++11 attributes associated with the declarator.
Definition at line 2092 of file DeclSpec.h.
References clang::ParsedAttributes::getList(), clang::AttributeList::getNext(), clang::AttributeList::getRange(), and clang::AttributeList::isCXX11Attribute().
const CXXScopeSpec& clang::Declarator::getCXXScopeSpec | ( | ) | const [inline] |
getCXXScopeSpec - Return the C++ scope specifier (global scope or nested-name-specifier) that is part of the declarator-id.
Definition at line 1652 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), and SetNestedNameSpecifier().
CXXScopeSpec& clang::Declarator::getCXXScopeSpec | ( | ) | [inline] |
Definition at line 1653 of file DeclSpec.h.
const DeclSpec& clang::Declarator::getDeclSpec | ( | ) | const [inline] |
getDeclSpec - Return the declaration-specifier that this declarator was declared with.
Reimplemented in clang::ParsingDeclarator.
Definition at line 1637 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXConditionDeclaration(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnCXXNew(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::canDelayFunctionBody(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckFieldDecl(), clang::Sema::checkUnusedDeclAttributes(), clang::Sema::containsUnexpandedParameterPacks(), ConvertDeclSpecToType(), CreateNewFunctionDecl(), diagnoseRedundantReturnTypeQualifiers(), getCCForDeclaratorChunk(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), getFunctionStorageClass(), clang::Sema::GetTypeSourceInfoForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::HandleField(), clang::Sema::HandleMSProperty(), hasAttributes(), hasParsedAttr(), isFirstDeclarationOfMember(), isFunctionDeclarationContext(), isOmittedBlockReturnType(), isStaticMember(), mayBeFollowedByCXXDirectInit(), clang::Sema::ParseTypedefDecl(), clang::Sema::ProcessDeclAttributes(), takeDeclAttributes(), and warnAboutAmbiguousFunction().
SourceLocation clang::Declarator::getEllipsisLoc | ( | ) | const [inline] |
Definition at line 2120 of file DeclSpec.h.
Referenced by GetFullTypeForDeclarator(), and clang::Sema::GetTypeSourceInfoForDeclarator().
bool clang::Declarator::getExtension | ( | ) | const [inline] |
Definition at line 2105 of file DeclSpec.h.
FunctionDefinitionKind clang::Declarator::getFunctionDefinitionKind | ( | ) | const [inline] |
Definition at line 2131 of file DeclSpec.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), isFunctionDefinition(), and warnAboutAmbiguousFunction().
getFunctionTypeInfo - Retrieves the function type info object (looking through parentheses).
Definition at line 1990 of file DeclSpec.h.
References isFunctionDeclarator().
Referenced by clang::Sema::ActOnFinishKNRParamDeclarations(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnStartOfFunctionTemplateDef(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), CreateNewFunctionDecl(), getFunctionTypeInfo(), and maybeSynthesizeBlockSignature().
const DeclaratorChunk::FunctionTypeInfo& clang::Declarator::getFunctionTypeInfo | ( | ) | const [inline] |
getFunctionTypeInfo - Retrieves the function type info object (looking through parentheses).
Definition at line 1999 of file DeclSpec.h.
References getFunctionTypeInfo().
IdentifierInfo* clang::Declarator::getIdentifier | ( | ) | const [inline] |
Definition at line 1874 of file DeclSpec.h.
References clang::UnqualifiedId::getKind(), clang::UnqualifiedId::Identifier, and clang::UnqualifiedId::IK_Identifier.
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTypeName(), clang::Sema::CreatePropertyDecl(), GetFullTypeForDeclarator(), clang::Sema::HandleField(), clang::Sema::HandleMSProperty(), clang::Sema::HandlePropertyInClassExtension(), clang::Sema::isLibstdcxxEagerExceptionSpecHack(), clang::Sema::ParseTypedefDecl(), and warnAboutAmbiguousFunction().
SourceLocation clang::Declarator::getIdentifierLoc | ( | ) | const [inline] |
Definition at line 1880 of file DeclSpec.h.
References clang::UnqualifiedId::StartLocation.
Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), ConvertDeclSpecToType(), CreateNewFunctionDecl(), clang::Sema::CreatePropertyDecl(), diagnoseRedundantReturnTypeQualifiers(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::HandleField(), clang::Sema::HandleMSProperty(), clang::Sema::HandlePropertyInClassExtension(), clang::Sema::ParseTypedefDecl(), RebuildDeclaratorInCurrentInstantiation(), and warnAboutAmbiguousFunction().
const DeclaratorChunk* clang::Declarator::getInnermostNonParenChunk | ( | ) | const [inline] |
Return the innermost (closest to the declarator) chunk of this declarator that is not a parens chunk, or null if there are no non-parens chunks.
Definition at line 1928 of file DeclSpec.h.
Referenced by isArrayOfUnknownBound().
SourceLocation clang::Declarator::getLocEnd | ( | ) | const [inline] |
Definition at line 1670 of file DeclSpec.h.
References clang::SourceRange::getEnd().
Referenced by clang::Sema::ActOnCXXNew().
SourceLocation clang::Declarator::getLocStart | ( | ) | const [inline] |
Definition at line 1669 of file DeclSpec.h.
References clang::SourceRange::getBegin().
Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnVariableDeclarator(), ConvertDeclSpecToType(), CreateNewFunctionDecl(), GetFullTypeForDeclarator(), clang::Sema::HandleField(), clang::Sema::HandleMSProperty(), clang::Sema::isLibstdcxxEagerExceptionSpecHack(), maybeSynthesizeBlockSignature(), and clang::Sema::ParseTypedefDecl().
DeclSpec& clang::Declarator::getMutableDeclSpec | ( | ) | [inline] |
getMutableDeclSpec - Return a non-const version of the DeclSpec. This should be used with extreme care: declspecs can often be shared between multiple declarators, so mutating the DeclSpec affects all of the Declarators. This should only be done when the declspec is known to not be shared or when in error recovery etc.
Definition at line 1644 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), distributeObjCPointerTypeAttrFromDeclarator(), and RebuildDeclaratorInCurrentInstantiation().
UnqualifiedId& clang::Declarator::getName | ( | ) | [inline] |
Retrieve the name specified by this declarator.
Definition at line 1656 of file DeclSpec.h.
Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), diagnoseRedundantReturnTypeQualifiers(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), getMissingDeclaratorIdLoc(), clang::Sema::GetNameForDeclarator(), and isStaticMember().
unsigned clang::Declarator::getNumTypeObjects | ( | ) | const [inline] |
Return the number of types applied to this declarator.
Definition at line 1906 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXNew(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::Sema::canDelayFunctionBody(), clang::Sema::CheckExtraCXXDefaultArguments(), clang::Sema::checkUnusedDeclAttributes(), clang::Sema::containsUnexpandedParameterPacks(), diagnoseRedundantReturnTypeQualifiers(), distributeFunctionTypeAttrToInnermost(), distributeObjCPointerTypeAttrFromDeclarator(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), clang::Sema::GetTypeSourceInfoForDeclarator(), handleObjCOwnershipTypeAttr(), hasAttributes(), hasParsedAttr(), inferARCWriteback(), isFunctionDeclaratorAFunctionDeclaration(), isOmittedBlockReturnType(), maybeMovePastReturnType(), maybeSynthesizeBlockSignature(), clang::Sema::ProcessDeclAttributes(), RebuildDeclaratorInCurrentInstantiation(), takeDeclAttributes(), and transferARCOwnership().
const DeclaratorChunk* clang::Declarator::getOutermostNonParenChunk | ( | ) | const [inline] |
Return the outermost (furthest from the declarator) chunk of this declarator that is not a parens chunk, or null if there are no non-parens chunks.
Definition at line 1939 of file DeclSpec.h.
const SourceRange& clang::Declarator::getSourceRange | ( | ) | const [inline] |
Get the source range that spans this declarator.
Definition at line 1668 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXConditionDeclaration(), clang::Sema::ActOnCXXNew(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnStartOfLambdaDefinition(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), and clang::Parser::ParseTypeName().
const DeclaratorChunk& clang::Declarator::getTypeObject | ( | unsigned | i | ) | const [inline] |
Return the specified TypeInfo from this declarator. TypeInfo #0 is closest to the identifier.
Definition at line 1910 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXNew(), clang::Sema::canDelayFunctionBody(), clang::Sema::CheckExtraCXXDefaultArguments(), clang::Sema::checkUnusedDeclAttributes(), clang::Sema::containsUnexpandedParameterPacks(), diagnoseRedundantReturnTypeQualifiers(), distributeFunctionTypeAttr(), distributeFunctionTypeAttrToInnermost(), distributeObjCPointerTypeAttr(), distributeObjCPointerTypeAttrFromDeclarator(), getCCForDeclaratorChunk(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), clang::Sema::GetTypeSourceInfoForDeclarator(), hasAttributes(), hasParsedAttr(), inferARCWriteback(), isFunctionDeclaratorAFunctionDeclaration(), isOmittedBlockReturnType(), maybeMovePastReturnType(), clang::Sema::ProcessDeclAttributes(), RebuildDeclaratorInCurrentInstantiation(), takeDeclAttributes(), transferARCOwnership(), and transferARCOwnershipToDeclaratorChunk().
DeclaratorChunk& clang::Declarator::getTypeObject | ( | unsigned | i | ) | [inline] |
Definition at line 1914 of file DeclSpec.h.
bool clang::Declarator::hasAttributes | ( | ) | const [inline] |
hasAttributes - do we contain any attributes?
Definition at line 2082 of file DeclSpec.h.
References getAttributes(), getDeclSpec(), getNumTypeObjects(), and getTypeObject().
bool clang::Declarator::hasEllipsis | ( | ) | const [inline] |
Definition at line 2119 of file DeclSpec.h.
References clang::SourceLocation::isValid().
Referenced by clang::Sema::ActOnNonTypeTemplateParameter(), ConvertDeclSpecToType(), and GetFullTypeForDeclarator().
bool clang::Declarator::hasGroupingParens | ( | ) | const [inline] |
Definition at line 2113 of file DeclSpec.h.
Referenced by mayBeFollowedByCXXDirectInit().
bool clang::Declarator::hasName | ( | ) | const [inline] |
hasName - Whether this declarator has a name, which might be an identifier (accessible via getIdentifier()) or some kind of special C++ name (constructor, destructor, etc.).
Definition at line 1870 of file DeclSpec.h.
References clang::UnqualifiedId::getKind(), clang::UnqualifiedId::Identifier, and clang::UnqualifiedId::IK_Identifier.
Referenced by clang::Sema::ActOnParamDeclarator().
bool clang::Declarator::isArrayOfUnknownBound | ( | ) | const [inline] |
isArrayOfUnknownBound - This method returns true if the declarator is a declarator for an array of unknown bound (looking through parentheses).
Definition at line 1950 of file DeclSpec.h.
References clang::DeclaratorChunk::Arr, clang::DeclaratorChunk::Array, getInnermostNonParenChunk(), clang::DeclaratorChunk::Kind, and clang::DeclaratorChunk::ArrayTypeInfo::NumElts.
bool Declarator::isDeclarationOfFunction | ( | ) | const |
Determine whether the declaration that will be produced from this declaration will be a function.
A declaration can declare a function even if the declarator itself isn't a function declarator, if the type specifier refers to a function type. This routine checks for both cases.
Definition at line 270 of file DeclSpec.cpp.
References clang::DeclaratorChunk::Array, clang::DeclaratorChunk::BlockPointer, clang::DeclaratorChunk::Function, clang::OpaquePtr< PtrTy >::get(), clang::DeclSpec::getRepAsExpr(), clang::DeclSpec::getRepAsType(), clang::DeclSpec::getTypeSpecType(), clang::Type::isFunctionType(), clang::QualType::isNull(), clang::DeclaratorChunk::MemberPointer, clang::DeclaratorChunk::Paren, clang::DeclaratorChunk::Pointer, clang::DeclaratorChunk::Reference, clang::TST_atomic, clang::TST_auto, clang::TST_bool, clang::TST_char, clang::TST_char16, clang::TST_char32, clang::TST_class, clang::TST_decimal128, clang::TST_decimal32, clang::TST_decimal64, clang::TST_decltype, clang::TST_decltype_auto, clang::TST_double, clang::TST_enum, clang::TST_error, clang::TST_float, clang::TST_half, clang::TST_int, clang::TST_int128, clang::TST_interface, clang::TST_struct, clang::TST_typename, clang::TST_typeofExpr, clang::TST_typeofType, clang::TST_underlyingType, clang::TST_union, clang::TST_unknown_anytype, clang::TST_unspecified, clang::TST_void, and clang::TST_wchar.
Referenced by clang::Sema::ActOnCXXMemberDeclarator().
bool clang::Declarator::isFirstDeclarationOfMember | ( | ) | [inline] |
Returns true if this declares a real member and not a friend.
Definition at line 2136 of file DeclSpec.h.
References getContext(), getDeclSpec(), clang::DeclSpec::isFriendSpecified(), and MemberContext.
Referenced by clang::Sema::ActOnFunctionDeclarator(), and getCCForDeclaratorChunk().
bool clang::Declarator::isFirstDeclarator | ( | ) | const [inline] |
Definition at line 2115 of file DeclSpec.h.
References clang::SourceLocation::isValid().
Referenced by warnAboutAmbiguousFunction().
bool clang::Declarator::isFunctionDeclarationContext | ( | ) | const [inline] |
Return true if this declaration appears in a context where a function declarator would be a function declaration.
Definition at line 2013 of file DeclSpec.h.
References AliasDeclContext, AliasTemplateContext, BlockContext, BlockLiteralContext, ConditionContext, Context, ConversionIdContext, CXXCatchContext, CXXNewContext, FileContext, ForContext, getDeclSpec(), KNRTypeListContext, LambdaExprContext, LambdaExprParameterContext, MemberContext, ObjCCatchContext, ObjCParameterContext, ObjCResultContext, PrototypeContext, clang::DeclSpec::SCS_typedef, TemplateParamContext, TemplateTypeArgContext, TrailingReturnContext, and TypeNameContext.
Referenced by clang::Sema::CheckExtraCXXDefaultArguments(), GetFullTypeForDeclarator(), and isFunctionDeclaratorAFunctionDeclaration().
bool clang::Declarator::isFunctionDeclarator | ( | unsigned & | idx | ) | const [inline] |
isFunctionDeclarator - This method returns true if the declarator is a function declarator (looking through parentheses). If true is returned, then the reference type parameter idx is assigned with the index of the declaration chunk.
Definition at line 1960 of file DeclSpec.h.
References clang::DeclaratorChunk::Array, clang::DeclaratorChunk::BlockPointer, clang::DeclaratorChunk::Function, clang::DeclaratorChunk::MemberPointer, clang::DeclaratorChunk::Paren, clang::DeclaratorChunk::Pointer, and clang::DeclaratorChunk::Reference.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfLambdaDefinition(), CreateNewFunctionDecl(), getCCForDeclaratorChunk(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), maybeSynthesizeBlockSignature(), and warnAboutAmbiguousFunction().
bool clang::Declarator::isFunctionDeclarator | ( | ) | const [inline] |
isFunctionDeclarator - Once this declarator is fully parsed and formed, this method returns true if the identifier is a function declarator (looking through parentheses).
Definition at line 1983 of file DeclSpec.h.
Referenced by getFunctionTypeInfo().
bool clang::Declarator::isFunctionDeclaratorAFunctionDeclaration | ( | ) | const [inline] |
Return true if a function declarator at this position would be a function declaration.
Definition at line 2049 of file DeclSpec.h.
References getNumTypeObjects(), getTypeObject(), isFunctionDeclarationContext(), and clang::DeclaratorChunk::Paren.
bool clang::Declarator::isFunctionDefinition | ( | ) | const [inline] |
Definition at line 2127 of file DeclSpec.h.
References clang::FDK_Declaration, and getFunctionDefinitionKind().
Referenced by clang::Sema::ActOnFriendFunctionDecl(), and clang::Sema::ActOnFunctionDeclarator().
bool clang::Declarator::isInvalidType | ( | ) | const [inline] |
Definition at line 2108 of file DeclSpec.h.
References clang::DeclSpec::getTypeSpecType(), and clang::TST_error.
Referenced by clang::Sema::ActOnCastExpr(), clang::Sema::ActOnCXXNamedCast(), clang::Sema::ActOnCXXNew(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTypeName(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), clang::Sema::CheckFieldDecl(), CreateNewFunctionDecl(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), clang::Sema::HandleDeclarator(), clang::Sema::ParseTypedefDecl(), and clang::Parser::ParseTypeName().
bool clang::Declarator::isPastIdentifier | ( | ) | const [inline] |
isPastIdentifier - Return true if we have parsed beyond the point where the
Definition at line 1865 of file DeclSpec.h.
References clang::UnqualifiedId::isValid().
bool clang::Declarator::isPrototypeContext | ( | ) | const [inline] |
Definition at line 1660 of file DeclSpec.h.
References Context, LambdaExprParameterContext, ObjCParameterContext, ObjCResultContext, and PrototypeContext.
Referenced by GetFullTypeForDeclarator(), and clang::Sema::GetTypeForDeclarator().
bool clang::Declarator::isRedeclaration | ( | ) | const [inline] |
Definition at line 2146 of file DeclSpec.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), and clang::Sema::HandleDeclarator().
Returns true if this declares a static member. This cannot be called on a declarator outside of a MemberContext because we won't know until redeclaration time if the decl is static.
Definition at line 345 of file DeclSpec.cpp.
References getContext(), getDeclSpec(), getName(), clang::DeclSpec::getStorageClassSpec(), clang::CXXMethodDecl::isStaticOverloadedOperator(), MemberContext, and clang::DeclSpec::SCS_static.
Referenced by clang::Sema::ActOnFunctionDeclarator(), and getCCForDeclaratorChunk().
bool clang::Declarator::mayBeFollowedByCXXDirectInit | ( | ) | const [inline] |
mayBeFollowedByCXXDirectInit - Return true if the declarator can be followed by a C++ direct initializer, e.g. "int x(1);".
Definition at line 1814 of file DeclSpec.h.
References AliasDeclContext, AliasTemplateContext, BlockContext, BlockLiteralContext, ConditionContext, Context, ConversionIdContext, CXXCatchContext, CXXNewContext, FileContext, ForContext, getDeclSpec(), clang::UnqualifiedId::getKind(), hasGroupingParens(), clang::UnqualifiedId::IK_Identifier, KNRTypeListContext, LambdaExprContext, LambdaExprParameterContext, MemberContext, ObjCCatchContext, ObjCParameterContext, ObjCResultContext, PrototypeContext, clang::DeclSpec::SCS_extern, clang::DeclSpec::SCS_typedef, TemplateParamContext, TemplateTypeArgContext, TrailingReturnContext, and TypeNameContext.
bool clang::Declarator::mayHaveIdentifier | ( | ) | const [inline] |
mayHaveIdentifier - Return true if the identifier is either optional or required. This is true for normal declarators and prototypes, but not typenames.
Definition at line 1748 of file DeclSpec.h.
References AliasDeclContext, AliasTemplateContext, BlockContext, BlockLiteralContext, ConditionContext, Context, ConversionIdContext, CXXCatchContext, CXXNewContext, FileContext, ForContext, KNRTypeListContext, LambdaExprContext, LambdaExprParameterContext, MemberContext, ObjCCatchContext, ObjCParameterContext, ObjCResultContext, PrototypeContext, TemplateParamContext, TemplateTypeArgContext, TrailingReturnContext, and TypeNameContext.
bool clang::Declarator::mayOmitIdentifier | ( | ) | const [inline] |
mayOmitIdentifier - Return true if the identifier is either optional or not allowed. This is true for typenames, prototypes, and template parameter lists.
Definition at line 1714 of file DeclSpec.h.
References AliasDeclContext, AliasTemplateContext, BlockContext, BlockLiteralContext, ConditionContext, Context, ConversionIdContext, CXXCatchContext, CXXNewContext, FileContext, ForContext, KNRTypeListContext, LambdaExprContext, LambdaExprParameterContext, MemberContext, ObjCCatchContext, ObjCParameterContext, ObjCResultContext, PrototypeContext, TemplateParamContext, TemplateTypeArgContext, TrailingReturnContext, and TypeNameContext.
void clang::Declarator::setAsmLabel | ( | Expr * | E | ) | [inline] |
Definition at line 2101 of file DeclSpec.h.
void clang::Declarator::setCommaLoc | ( | SourceLocation | CL | ) | [inline] |
Definition at line 2117 of file DeclSpec.h.
void clang::Declarator::setEllipsisLoc | ( | SourceLocation | EL | ) | [inline] |
Definition at line 2121 of file DeclSpec.h.
Referenced by GetFullTypeForDeclarator().
void clang::Declarator::setExtension | ( | bool | Val = true | ) | [inline] |
Definition at line 2104 of file DeclSpec.h.
void clang::Declarator::setFunctionDefinitionKind | ( | FunctionDefinitionKind | Val | ) | [inline] |
Definition at line 2123 of file DeclSpec.h.
Referenced by clang::Sema::ActOnDeclarator(), clang::Sema::ActOnStartOfFunctionDef(), and clang::Sema::ActOnStartOfFunctionTemplateDef().
void clang::Declarator::setGroupingParens | ( | bool | flag | ) | [inline] |
Definition at line 2112 of file DeclSpec.h.
void clang::Declarator::SetIdentifier | ( | IdentifierInfo * | Id, |
SourceLocation | IdLoc | ||
) | [inline] |
Set the name of this declarator to be the given identifier.
Definition at line 1883 of file DeclSpec.h.
References clang::UnqualifiedId::setIdentifier().
Referenced by clang::Sema::ActOnCXXForRangeIdentifier(), clang::Sema::ActOnFinishKNRParamDeclarations(), clang::Sema::ActOnParamDeclarator(), and clang::Sema::ImplicitlyDefineFunction().
void clang::Declarator::setInvalidType | ( | bool | Val = true | ) | [inline] |
Definition at line 2107 of file DeclSpec.h.
Referenced by clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnIvar(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::CheckConstructorDeclarator(), clang::Sema::CheckConversionDeclarator(), clang::Sema::CheckDestructorDeclarator(), checkIsValidOpenCLKernelParameter(), ConvertDeclSpecToType(), CreateNewFunctionDecl(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), getFunctionStorageClass(), clang::Sema::HandleDeclarator(), clang::Sema::HandleField(), and clang::Sema::HandleMSProperty().
void clang::Declarator::SetRangeBegin | ( | SourceLocation | Loc | ) | [inline] |
SetRangeBegin - Set the start of the source range to Loc, unless it's invalid.
Definition at line 1675 of file DeclSpec.h.
References clang::SourceLocation::isInvalid(), and clang::SourceRange::setBegin().
void clang::Declarator::SetRangeEnd | ( | SourceLocation | Loc | ) | [inline] |
SetRangeEnd - Set the end of the source range to Loc, unless it's invalid.
Definition at line 1680 of file DeclSpec.h.
References clang::SourceLocation::isInvalid(), and clang::SourceRange::setEnd().
Referenced by AddTypeInfo(), and takeAttributes().
void clang::Declarator::setRedeclaration | ( | bool | Val | ) | [inline] |
Definition at line 2145 of file DeclSpec.h.
Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTypedefDeclarator(), clang::Sema::ActOnVariableDeclarator(), and clang::Sema::ActOnVarTemplateSpecialization().
void clang::Declarator::SetSourceRange | ( | SourceRange | R | ) | [inline] |
Definition at line 1672 of file DeclSpec.h.
void clang::Declarator::takeAttributes | ( | ParsedAttributes & | attrs, |
SourceLocation | lastLoc | ||
) | [inline] |
takeAttributes - Takes attributes from the given parsed-attributes set and add them to this declarator.
These examples both add 3 attributes to "var": short int var __attribute__((aligned(16),common,deprecated)); short int x, __attribute__((aligned(16)) var __attribute__((common,deprecated));
Also extends the range of the declarator.
Definition at line 2069 of file DeclSpec.h.
References clang::SourceLocation::isInvalid(), SetRangeEnd(), and clang::ParsedAttributes::takeAllFrom().
Referenced by clang::Sema::ActOnCXXForRangeIdentifier().
friend struct DeclaratorChunk [friend] |
Definition at line 1620 of file DeclSpec.h.