clang 8.0.0

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:
[legend]
Collaboration 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
SourceRange | getRange () const
void | setRange (SourceRange R)
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
Attr * | clone (ASTContext &C) const
bool | isLateParsed () const
void | printPretty (raw_ostream &OS, const PrintingPolicy &Policy) const

## Protected Member Functions
void * | operator new (size_t bytes) noexcept
void | operator delete (void *data) noexcept
| Attr (attr::Kind AK, SourceRange R, unsigned SpellingListIndex, bool IsLateParsed)

## Protected Attributes
unsigned | SpellingListIndex: 4
| An index into the spelling list of an attribute defined in Attr.td file. More...
unsigned | Inherited: 1
unsigned | IsPackExpansion: 1
unsigned | Implicit: 1
unsigned | IsLateParsed: 1
unsigned | InheritEvenIfAlreadyPresent: 1

## Detailed Description

Attr - This represents one attribute.

Definition at line 44 of file Attr.h.

## Constructor & Destructor Documentation

## ◆ Attr()

clang::Attr::Attr | ( | attr::Kind | AK,
|  | SourceRange | R,
|  | unsigned | SpellingListIndex,
|  | bool | IsLateParsed
| ) |  |
| inline protected

Definition at line 79 of file Attr.h.

## Member Function Documentation

## ◆ clone()

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

Referenced by clang::ASTImporter::Import(), isPackExpansion(), and clang::Sema::propagateDLLAttrToBaseClassTemplate().

## ◆ getKind()

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

Definition at line 87 of file Attr.h.

Referenced by clang::ASTRecordWriter::AddAttr(), clang::ast_matchers::AST_MATCHER_P(), attrToRetainOwnershipKind(), clang::TypeAttr::classof(), clang::StmtAttr::classof(), clang::InheritableAttr::classof(), clang::InheritableParamAttr::classof(), clang::ParameterABIAttr::classof(), DeclHasAttr(), clang::ParameterABIAttr::getABI(), getStaticBooleanValue(), handleMSPointerTypeQualifierAttr(), ReferenceDllExportedMembers(), clang::TreeTransform< Derived >::TransformAttr(), clang::attrvisitor::Base< llvm::make_const_ptr, TextNodeDumper, void, ParamTys... >::Visit(), and clang::TextNodeDumper::Visit().

## ◆ getLocation()

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

Definition at line 94 of file Attr.h.

References clang::SourceRange::getBegin().

Referenced by clang::Sema::ActOnStartOfFunctionDef(), checkForMultipleExportedDefaultConstructors(), clang::TypeLoc::findNullabilityLoc(), clang::Sema::propagateDLLAttrToBaseClassTemplate(), ReferenceDllExportedMembers(), and clang::TreeTransform< Derived >::TransformDependentTemplateSpecializationType().

## ◆ getRange()

SourceRange clang::Attr::getRange | ( |  | ) | const
| inline

Definition at line 95 of file Attr.h.

Referenced by clang::ASTRecordWriter::AddAttr(), clang::ASTImporter::Import(), and clang::TextNodeDumper::Visit().

## ◆ getSpelling()

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

Referenced by clang::Sema::CheckParmsForFunctionDef(), and getSpellingListIndex().

## ◆ getSpellingListIndex()

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

Definition at line 91 of file Attr.h.

References getSpelling(), and SpellingListIndex.

## ◆ 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::TextNodeDumper::Visit().

## ◆ isInherited()

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

Definition at line 98 of file Attr.h.

References Inherited.

Referenced by clang::Decl::addAttr(), ReferenceDllExportedMembers(), and clang::TextNodeDumper::Visit().

## ◆ isLateParsed()

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

Definition at line 111 of file Attr.h.

References IsLateParsed, and printPretty().

## ◆ isPackExpansion()

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

Definition at line 106 of file Attr.h.

References clone(), and IsPackExpansion.

## ◆ operator delete() [1/2]

void clang::Attr::operator delete | ( | void * | data | ) |
| inline protected noexcept

Definition at line 64 of file Attr.h.

## ◆ operator delete() [2/2]

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

Definition at line 74 of file Attr.h.

References clang::C.

## ◆ operator new() [1/2]

void* clang::Attr::operator new | ( | size_t | bytes | ) |
| inline protected noexcept

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`
| ) |  |
| inline noexcept

Definition at line 70 of file Attr.h.

References clang::C.

## ◆ printPretty()

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

Referenced by isLateParsed().

## ◆ setImplicit()

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

Definition at line 103 of file Attr.h.

References Implicit.

## ◆ setPackExpansion()

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

Definition at line 105 of file Attr.h.

References IsPackExpansion.

## ◆ setRange()

void clang::Attr::setRange | ( | SourceRange | R | ) |
| inline

Definition at line 96 of file Attr.h.

Referenced by clang::ASTImporter::Import().

## 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

Definition at line 53 of file Attr.h.

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

## ◆ InheritEvenIfAlreadyPresent

unsigned clang::Attr::InheritEvenIfAlreadyPresent
| protected

Definition at line 59 of file Attr.h.

Referenced by clang::InheritableAttr::InheritableAttr(), and clang::InheritableAttr::shouldInheritEvenIfAlreadyPresent().

## ◆ 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().

## ◆ SpellingListIndex

unsigned clang::Attr::SpellingListIndex
| 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 getSpellingListIndex().

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

- include/clang/AST/Attr.h