clang 20.0.0git
|
A single parameter index whose accessors require each use to make explicit the parameter index encoding needed. More...
#include "clang/AST/Attr.h"
Public Types | |
typedef uint32_t | SerialType |
A type into which ParamIdx can be serialized. | |
Public Member Functions | |
ParamIdx () | |
Construct an invalid parameter index (isValid returns false and accessors fail an assert). | |
ParamIdx (unsigned Idx, const Decl *D) | |
SerialType | serialize () const |
Produce a representation that can later be passed to deserialize to construct an equivalent ParamIdx . | |
bool | isValid () const |
Is this parameter index valid? | |
unsigned | getSourceIndex () const |
Get the parameter index as it would normally be encoded for attributes at the source level of representation: one-origin including any C++ implicit this parameter. | |
unsigned | getASTIndex () const |
Get the parameter index as it would normally be encoded at the AST level of representation: zero-origin not including any C++ implicit this parameter. | |
unsigned | getLLVMIndex () const |
Get the parameter index as it would normally be encoded at the LLVM level of representation: zero-origin including any C++ implicit this parameter. | |
bool | operator== (const ParamIdx &I) const |
bool | operator!= (const ParamIdx &I) const |
bool | operator< (const ParamIdx &I) const |
bool | operator> (const ParamIdx &I) const |
bool | operator<= (const ParamIdx &I) const |
bool | operator>= (const ParamIdx &I) const |
Static Public Member Functions | |
static ParamIdx | deserialize (SerialType S) |
Construct from a result from serialize . | |
A single parameter index whose accessors require each use to make explicit the parameter index encoding needed.
typedef uint32_t clang::ParamIdx::SerialType |
|
inline |
Idx | is the parameter index as it is normally specified in attributes in the source: one-origin including any C++ implicit this parameter. |
D | is the declaration containing the parameters. It is used to determine if there is a C++ implicit this parameter. |
Definition at line 280 of file Attr.h.
References D.
|
inlinestatic |
|
inline |
Get the parameter index as it would normally be encoded at the AST level of representation: zero-origin not including any C++ implicit this parameter.
This is the encoding primarily used in Sema. However, in diagnostics, Sema uses getSourceIndex
instead.
Definition at line 329 of file Attr.h.
References isValid().
Referenced by clang::Sema::AddAllocAlignAttr(), checkParamIsIntegerType(), handleArgumentWithTypeTagAttr(), clang::SemaSwift::handleAsyncAttr(), handleFormatArgAttr(), handleNonNullAttr(), and handleOwnershipAttr().
|
inline |
|
inline |
Get the parameter index as it would normally be encoded for attributes at the source level of representation: one-origin including any C++ implicit this parameter.
This encoding thus makes sense for diagnostics, pretty printing, and constructing new attributes from a source-like specification.
Definition at line 318 of file Attr.h.
References isValid().
Referenced by handleOwnershipAttr(), and handleXRayLogArgsAttr().
|
inline |
Is this parameter index valid?
Definition at line 310 of file Attr.h.
Referenced by getASTIndex(), getLLVMIndex(), and getSourceIndex().
|
inline |