clang 20.0.0git
|
Attr - This represents one attribute. More...
#include "clang/AST/Attr.h"
Public Member Functions | |
void * | operator new (size_t Bytes, ASTContext &C, size_t Alignment=8) noexcept |
void | operator delete (void *Ptr, ASTContext &C, size_t Alignment) noexcept |
attr::Kind | getKind () const |
unsigned | getSpellingListIndex () const |
const char * | getSpelling () const |
SourceLocation | getLocation () const |
bool | isInherited () const |
bool | isImplicit () const |
Returns true if the attribute has been implicitly created instead of explicitly written by the user. | |
void | setImplicit (bool I) |
void | setPackExpansion (bool PE) |
bool | isPackExpansion () const |
Attr * | clone (ASTContext &C) const |
bool | isLateParsed () const |
void | printPretty (raw_ostream &OS, const PrintingPolicy &Policy) const |
Public Member Functions inherited from clang::AttributeCommonInfo | |
AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Kind AttrKind, Form FormUsed) | |
AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Form FormUsed) | |
AttributeCommonInfo (const IdentifierInfo *AttrName, SourceRange AttrRange, Form FormUsed) | |
AttributeCommonInfo (SourceRange AttrRange, Kind K, Form FormUsed) | |
AttributeCommonInfo (AttributeCommonInfo &&)=default | |
AttributeCommonInfo (const AttributeCommonInfo &)=default | |
Kind | getParsedKind () const |
Syntax | getSyntax () const |
Form | getForm () const |
const IdentifierInfo * | getAttrName () const |
void | setAttrName (const IdentifierInfo *AttrNameII) |
SourceLocation | getLoc () const |
SourceRange | getRange () const |
void | setRange (SourceRange R) |
bool | hasScope () const |
const IdentifierInfo * | getScopeName () const |
SourceLocation | getScopeLoc () const |
std::string | getNormalizedFullName () const |
Gets the normalized full name, which consists of both scope and name and with surrounding underscores removed as appropriate (e.g. | |
bool | isDeclspecAttribute () const |
bool | isMicrosoftAttribute () const |
bool | isGNUScope () const |
bool | isClangScope () const |
bool | isCXX11Attribute () const |
bool | isC23Attribute () const |
bool | isAlignas () const |
bool | isStandardAttributeSyntax () const |
The attribute is spelled [[]] in either C or C++ mode, including standard attributes spelled with a keyword, like alignas. | |
bool | isGNUAttribute () const |
bool | isKeywordAttribute () const |
bool | isRegularKeywordAttribute () const |
bool | isContextSensitiveKeywordAttribute () const |
unsigned | getAttributeSpellingListIndex () const |
void | setAttributeSpellingListIndex (unsigned V) |
Static Public Member Functions | |
static StringRef | getDocumentation (attr::Kind) |
Static Public Member Functions inherited from clang::AttributeCommonInfo | |
static Kind | getParsedKind (const IdentifierInfo *Name, const IdentifierInfo *Scope, Syntax SyntaxUsed) |
Protected Member Functions | |
void * | operator new (size_t bytes) noexcept |
void | operator delete (void *data) noexcept |
Attr (ASTContext &Context, const AttributeCommonInfo &CommonInfo, attr::Kind AK, bool IsLateParsed) | |
Protected Member Functions inherited from clang::AttributeCommonInfo | |
bool | isAttributeSpellingListCalculated () const |
Protected Attributes | |
unsigned | Inherited: 1 |
An index into the spelling list of an attribute defined in Attr.td file. | |
unsigned | IsPackExpansion: 1 |
unsigned | Implicit: 1 |
unsigned | IsLateParsed: 1 |
unsigned | InheritEvenIfAlreadyPresent: 1 |
Additional Inherited Members | |
Public Types inherited from clang::AttributeCommonInfo | |
enum | Syntax { AS_GNU = 1 , AS_CXX11 , AS_C23 , AS_Declspec , AS_Microsoft , AS_Keyword , AS_Pragma , AS_ContextSensitiveKeyword , AS_HLSLAnnotation , AS_Implicit } |
The style used to specify an attribute. More... | |
enum | Kind { NoSemaHandlerAttribute , IgnoredAttribute , UnknownAttribute } |
Static Protected Attributes inherited from clang::AttributeCommonInfo | |
static constexpr unsigned | SpellingNotCalculated = 0xf |
|
inlineprotected |
Attr * clang::Attr::clone | ( | ASTContext & | C | ) | const |
|
static |
Definition at line 23 of file AttrDocTable.cpp.
References AttrDoc.
|
inline |
Definition at line 88 of file Attr.h.
Referenced by clang::ASTRecordWriter::AddAttr(), clang::ast_matchers::AST_MATCHER_P(), attrToRetainOwnershipKind(), clang::Sema::checkClassLevelDLLAttribute(), checkNewAttributesAfterDef(), CheckNullabilityTypeSpecifier(), clang::SemaHLSL::CheckSemanticAnnotation(), clang::TypeAttr::classof(), clang::StmtAttr::classof(), clang::InheritableAttr::classof(), clang::DeclOrStmtAttr::classof(), clang::InheritableParamAttr::classof(), clang::HLSLAnnotationAttr::classof(), clang::ParameterABIAttr::classof(), DeclHasAttr(), clang::ParameterABIAttr::getABI(), getCCTypeAttr(), clang::ASTNodeKind::getFromNode(), HandleAddressSpaceTypeAttribute(), handleMSPointerTypeQualifierAttr(), HandleWebAssemblyFuncrefAttr(), clang::ASTImporter::Import(), ReferenceDllExportedMembers(), clang::TreeTransform< Derived >::TransformAttr(), clang::TreeTransform< Derived >::TransformStmtAttr(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), and clang::attrvisitor::Base< Ptr, ImplClass, RetTy, ParamTys >::Visit().
|
inline |
Definition at line 95 of file Attr.h.
References clang::SourceRange::getBegin(), and clang::AttributeCommonInfo::getRange().
Referenced by clang::Sema::ActOnIfStmt(), clang::Sema::ActOnStartOfFunctionDef(), clang::checkAMDGPUFlatWorkGroupSizeArguments(), clang::checkAMDGPUWavesPerEUArguments(), checkAttributesAfterMerging(), clang::checkAttrMutualExclusion(), clang::Sema::checkClassLevelDLLAttribute(), clang::Sema::CheckCompleteVariableDeclaration(), checkForMultipleExportedDefaultConstructors(), checkNewAttributesAfterDef(), clang::Sema::FinalizeDeclaration(), clang::TypeLoc::findNullabilityLoc(), clang::tooling::getAssociatedRange(), clang::Sema::InstantiateDefaultCtorDefaultArgs(), instantiateDependentFunctionAttrCondition(), clang::Sema::propagateDLLAttrToBaseClassTemplate(), ReferenceDllExportedMembers(), and clang::TreeTransform< Derived >::TransformAttributedType().
const char * clang::Attr::getSpelling | ( | ) | const |
|
inline |
Definition at line 90 of file Attr.h.
References clang::AttributeCommonInfo::getAttributeSpellingListIndex().
|
inline |
Returns true if the attribute has been implicitly created instead of explicitly written by the user.
Definition at line 101 of file Attr.h.
References Implicit.
Referenced by clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
|
inline |
Definition at line 97 of file Attr.h.
References Inherited.
Referenced by clang::Decl::addAttr(), clang::Sema::checkClassLevelDLLAttribute(), clang::Sema::FinalizeDeclaration(), ReferenceDllExportedMembers(), clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().
|
inline |
Definition at line 110 of file Attr.h.
References IsLateParsed.
|
inline |
Definition at line 105 of file Attr.h.
References IsPackExpansion.
|
inlineprotectednoexcept |
|
inlinenoexcept |
|
inlineprotectednoexcept |
|
inlinenoexcept |
void clang::Attr::printPretty | ( | raw_ostream & | OS, |
const PrintingPolicy & | Policy | ||
) | const |
|
inline |
Definition at line 102 of file Attr.h.
References Implicit.
Referenced by checkObjCKindOfType(), and getImplicitCodeSegAttrFromClass().
|
inline |
Definition at line 104 of file Attr.h.
References IsPackExpansion.
|
protected |
Definition at line 55 of file Attr.h.
Referenced by isImplicit(), and setImplicit().
|
protected |
An index into the spelling list of an attribute defined in Attr.td file.
Definition at line 51 of file Attr.h.
Referenced by isInherited(), and clang::InheritableAttr::setInherited().
|
protected |
Definition at line 61 of file Attr.h.
Referenced by clang::InheritableAttr::InheritableAttr(), and clang::InheritableAttr::shouldInheritEvenIfAlreadyPresent().
|
protected |
Definition at line 59 of file Attr.h.
Referenced by isLateParsed().
|
protected |
Definition at line 53 of file Attr.h.
Referenced by isPackExpansion(), and setPackExpansion().