clang  14.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]
Collaboration diagram for clang::Attr:
Collaboration 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. More...
 
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 (SourceRange AttrRange)
 
 AttributeCommonInfo (SourceLocation AttrLoc)
 
 AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Syntax SyntaxUsed)
 
 AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Kind AttrKind, Syntax SyntaxUsed)
 
 AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Kind AttrKind, Syntax SyntaxUsed, unsigned Spelling)
 
 AttributeCommonInfo (const IdentifierInfo *AttrName, SourceRange AttrRange, Syntax SyntaxUsed)
 
 AttributeCommonInfo (SourceRange AttrRange, Kind K, Syntax SyntaxUsed)
 
 AttributeCommonInfo (SourceRange AttrRange, Kind K, Syntax SyntaxUsed, unsigned Spelling)
 
 AttributeCommonInfo (AttributeCommonInfo &&)=default
 
 AttributeCommonInfo (const AttributeCommonInfo &)=default
 
Kind getParsedKind () const
 
Syntax getSyntax () const
 
const IdentifierInfogetAttrName () const
 
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. More...
 
bool isDeclspecAttribute () const
 
bool isMicrosoftAttribute () const
 
bool isGNUScope () const
 
bool isAlignasAttribute () const
 
bool isCXX11Attribute () const
 
bool isC2xAttribute () const
 
bool isStandardAttributeSyntax () const
 The attribute is spelled [[]] in either C or C++ mode, including standard attributes spelled with a keyword, like alignas. More...
 
bool isKeywordAttribute () 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. More...
 
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, AS_CXX11, AS_C2x, AS_Declspec,
  AS_Microsoft, AS_Keyword, AS_Pragma, AS_ContextSensitiveKeyword
}
 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
 

Detailed Description

Attr - This represents one attribute.

Definition at line 46 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 79 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 99 of file Attr.h.

References Implicit.

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

◆ isInherited()

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

◆ isLateParsed()

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

Definition at line 108 of file Attr.h.

References IsLateParsed.

◆ isPackExpansion()

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

Definition at line 103 of file Attr.h.

References IsPackExpansion.

◆ operator delete() [1/2]

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

Definition at line 64 of file Attr.h.

◆ operator delete() [2/2]

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

Definition at line 74 of file Attr.h.

◆ operator new() [1/2]

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

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

◆ printPretty()

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

◆ setImplicit()

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

Definition at line 100 of file Attr.h.

References Implicit.

◆ setPackExpansion()

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

Definition at line 102 of file Attr.h.

References IsPackExpansion.

Member Data Documentation

◆ Implicit

unsigned clang::Attr::Implicit
protected

Definition at line 55 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 53 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 58 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: