clang 22.0.0git
clang::Attr Class Reference

Attr - This represents one attribute. More...

#include "clang/AST/Attr.h"

Inheritance diagram for clang::Attr:
[legend]

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
Attrclone (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, AttributeScopeInfo AttrScope, SourceRange AttrRange, Kind AttrKind, Form FormUsed)
 AttributeCommonInfo (const IdentifierInfo *AttrName, AttributeScopeInfo Scope, SourceRange AttrRange, Form FormUsed)
 AttributeCommonInfo (const IdentifierInfo *AttrName, SourceRange AttrRange, Form FormUsed)
 AttributeCommonInfo (SourceRange AttrRange, Kind K, Form FormUsed)
 AttributeCommonInfo (SourceRange AttrRange, AttributeScopeInfo AttrScope, Kind K, Form FormUsed)
 AttributeCommonInfo (AttributeCommonInfo &&)=default
 AttributeCommonInfo (const AttributeCommonInfo &)=default
Kind getParsedKind () const
Syntax getSyntax () const
Form getForm () const
const IdentifierInfogetAttrName () const
void setAttrName (const IdentifierInfo *AttrNameII)
SourceLocation getLoc () const
SourceRange getRange () const
void setRange (SourceRange R)
bool hasScope () const
bool isExplicitScope () const
const IdentifierInfogetScopeName () 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.
std::string getNormalizedFullName (StringRef ScopeName, StringRef AttrName) const
StringRef getNormalizedScopeName () const
StringRef getNormalizedAttrName (StringRef ScopeName) const
std::optional< StringRef > tryGetCorrectedScopeName (StringRef ScopeName) const
std::optional< StringRef > tryGetCorrectedAttrName (StringRef ScopeName, StringRef AttrName, const TargetInfo &Target, const LangOptions &LangOpts) const
SourceRange getNormalizedRange () const
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)
static AttrArgsInfo getCXX11AttrArgsInfo (const IdentifierInfo *Name)

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 }
enum class  Scope {
  NONE , CLANG , GNU , MSVC ,
  OMP , HLSL , VK , GSL ,
  RISCV
}
enum class  AttrArgsInfo { None , Optional , Required }
Static Protected Attributes inherited from clang::AttributeCommonInfo
static constexpr unsigned SpellingNotCalculated = 0xf

Detailed Description

Attr - This represents one attribute.

Definition at line 44 of file Attr.h.

Constructor & Destructor Documentation

◆ Attr()

Member Function Documentation

◆ clone()

◆ getDocumentation()

llvm::StringRef clang::Attr::getDocumentation ( attr::Kind K)
static

Definition at line 23 of file AttrDocTable.cpp.

References AttrDoc.

◆ getKind()

◆ getLocation()

◆ getSpelling()

const char * clang::Attr::getSpelling ( ) const

◆ getSpellingListIndex()

unsigned clang::Attr::getSpellingListIndex ( ) const
inline

◆ isImplicit()

bool clang::Attr::isImplicit ( ) const
inline

Returns true if the attribute has been implicitly created instead of explicitly written by the user.

Definition at line 103 of file Attr.h.

References Implicit.

Referenced by clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().

◆ isInherited()

◆ isLateParsed()

bool clang::Attr::isLateParsed ( ) const
inline

Definition at line 112 of file Attr.h.

References IsLateParsed.

◆ isPackExpansion()

bool clang::Attr::isPackExpansion ( ) const
inline

Definition at line 107 of file Attr.h.

References IsPackExpansion.

◆ operator delete() [1/2]

void clang::Attr::operator delete ( void * data)
inlineprotectednoexcept

Definition at line 68 of file Attr.h.

◆ operator delete() [2/2]

void clang::Attr::operator delete ( void * Ptr,
ASTContext & C,
size_t Alignment )
inlinenoexcept

Definition at line 78 of file Attr.h.

References clang::C.

◆ operator new() [1/2]

void * clang::Attr::operator new ( size_t bytes)
inlineprotectednoexcept

Definition at line 65 of file Attr.h.

References bytes().

◆ operator new() [2/2]

void * clang::Attr::operator new ( size_t Bytes,
ASTContext & C,
size_t Alignment = 8 )
inlinenoexcept

Definition at line 74 of file Attr.h.

References clang::C.

◆ printPretty()

void clang::Attr::printPretty ( raw_ostream & OS,
const PrintingPolicy & Policy ) const

◆ setImplicit()

void clang::Attr::setImplicit ( bool I)
inline

Definition at line 104 of file Attr.h.

References Implicit.

Referenced by checkObjCKindOfType(), and getImplicitCodeSegAttrFromClass().

◆ setPackExpansion()

void clang::Attr::setPackExpansion ( bool PE)
inline

Definition at line 106 of file Attr.h.

References IsPackExpansion.

Member Data Documentation

◆ Implicit

unsigned clang::Attr::Implicit
protected

Definition at line 57 of file Attr.h.

Referenced by Attr(), isImplicit(), and setImplicit().

◆ Inherited

unsigned clang::Attr::Inherited
protected

An index into the spelling list of an attribute defined in Attr.td file.

Definition at line 53 of file Attr.h.

Referenced by Attr(), isInherited(), and clang::InheritableAttr::setInherited().

◆ InheritEvenIfAlreadyPresent

◆ IsLateParsed

◆ IsPackExpansion

unsigned clang::Attr::IsPackExpansion
protected

Definition at line 55 of file Attr.h.

Referenced by Attr(), isPackExpansion(), and setPackExpansion().


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