clang 20.0.0git
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::Attr Class Reference

Attr - This represents one attribute. More...

#include "clang/AST/Attr.h"

Inheritance diagram for clang::Attr:
Inheritance graph
[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, 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 IdentifierInfogetAttrName () const
 
void setAttrName (const IdentifierInfo *AttrNameII)
 
SourceLocation getLoc () const
 
SourceRange getRange () const
 
void setRange (SourceRange R)
 
bool hasScope () 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.
 
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 }
 
enum class  Scope {
  NONE , CLANG , GNU , MSVC ,
  OMP , HLSL , GSL , RISCV
}
 
- Static Protected Attributes inherited from clang::AttributeCommonInfo
static constexpr unsigned SpellingNotCalculated = 0xf
 

Detailed Description

Attr - This represents one attribute.

Definition at line 43 of file Attr.h.

Constructor & Destructor Documentation

◆ Attr()

clang::Attr::Attr ( ASTContext Context,
const AttributeCommonInfo CommonInfo,
attr::Kind  AK,
bool  IsLateParsed 
)
inlineprotected

Definition at line 82 of file Attr.h.

Member Function Documentation

◆ clone()

Attr * clang::Attr::clone ( ASTContext C) const

◆ getDocumentation()

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

Definition at line 23 of file AttrDocTable.cpp.

References AttrDoc.

◆ getKind()

attr::Kind clang::Attr::getKind ( ) const
inline

◆ getLocation()

SourceLocation clang::Attr::getLocation ( ) const
inline

◆ 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 102 of file Attr.h.

References Implicit.

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

◆ isInherited()

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

◆ isLateParsed()

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

Definition at line 111 of file Attr.h.

References IsLateParsed.

◆ isPackExpansion()

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

Definition at line 106 of file Attr.h.

References IsPackExpansion.

◆ operator delete() [1/2]

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

Definition at line 67 of file Attr.h.

◆ operator delete() [2/2]

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

Definition at line 77 of file Attr.h.

References clang::C.

◆ operator new() [1/2]

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

Definition at line 64 of file Attr.h.

◆ operator new() [2/2]

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

Definition at line 73 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 103 of file Attr.h.

References Implicit.

Referenced by checkObjCKindOfType(), and getImplicitCodeSegAttrFromClass().

◆ setPackExpansion()

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

Definition at line 105 of file Attr.h.

References IsPackExpansion.

Member Data Documentation

◆ Implicit

unsigned clang::Attr::Implicit
protected

Definition at line 56 of file Attr.h.

Referenced by 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 52 of file Attr.h.

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

◆ InheritEvenIfAlreadyPresent

unsigned clang::Attr::InheritEvenIfAlreadyPresent
protected

◆ IsLateParsed

unsigned clang::Attr::IsLateParsed
protected

Definition at line 60 of file Attr.h.

Referenced by isLateParsed().

◆ IsPackExpansion

unsigned clang::Attr::IsPackExpansion
protected

Definition at line 54 of file Attr.h.

Referenced by isPackExpansion(), and setPackExpansion().


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