clang 24.0.0git
clang::LateParsedTypeAttribute Struct Reference

A late-parsed attribute that will be applied as a type attribute. More...

#include "clang/Parse/Parser.h"

Inheritance diagram for clang::LateParsedTypeAttribute:
[legend]

Public Member Functions

 LateParsedTypeAttribute (Parser *P, IdentifierInfo &Name, SourceLocation Loc, ParsedAttr::Kind AttrKind)
void ParseLexedAttributes () override
void ParseInto (ParsedAttributes &OutAttrs)
 Parse this late-parsed type attribute and store results in OutAttrs.
Public Member Functions inherited from clang::LateParsedAttribute
 LateParsedAttribute (Parser *P, IdentifierInfo &Name, SourceLocation Loc)
void addDecl (Decl *D)
Kind getKind () const
Public Member Functions inherited from clang::LateParsedDeclaration
virtual ~LateParsedDeclaration ()
virtual void ParseLexedMethodDeclarations ()
virtual void ParseLexedMemberInitializers ()
virtual void ParseLexedMethodDefs ()
virtual void ParseLexedPragmas ()

Static Public Member Functions

static bool classof (const LateParsedAttribute *LA)
Static Public Member Functions inherited from clang::LateParsedAttribute
static bool classof (const LateParsedAttribute *LA)

Public Attributes

LateParsedTypeAttrInfo Info
 What Sema reads and fills in during type construction.
Public Attributes inherited from clang::LateParsedAttribute
Parser * Self
CachedTokens Toks
IdentifierInfo & AttrName
IdentifierInfo * MacroII = nullptr
SourceLocation AttrNameLoc
SmallVector< Decl *, 2 > Decls
SmallVector< ParmVarDecl *, 4 > ProtoParams
 Parameters of the prototype the attribute was written on, kept because late parsing runs after their scope is popped and the arguments may name one: 'void (*unlock)(struct BDev *bdev) UNLOCK_FUNCTION(bdev->lock)'.

Additional Inherited Members

Public Types inherited from clang::LateParsedAttribute
enum class  Kind { Declaration , Type }
Protected Member Functions inherited from clang::LateParsedAttribute
 LateParsedAttribute (Parser *P, IdentifierInfo &Name, SourceLocation Loc, Kind K)

Detailed Description

A late-parsed attribute that will be applied as a type attribute.

Unlike LateParsedAttribute (which applies to declarations via ActOnFinishDelayedAttribute), this stores cached tokens that are parsed during type construction when the placeholder LateParsedAttrType is replaced with a concrete type (e.g., CountAttributedType).

Definition at line 238 of file Parser.h.

Constructor & Destructor Documentation

◆ LateParsedTypeAttribute()

clang::LateParsedTypeAttribute::LateParsedTypeAttribute ( Parser * P,
IdentifierInfo & Name,
SourceLocation Loc,
ParsedAttr::Kind AttrKind )
inline

Member Function Documentation

◆ classof()

bool clang::LateParsedTypeAttribute::classof ( const LateParsedAttribute * LA)
inlinestatic

◆ ParseInto()

void LateParsedTypeAttribute::ParseInto ( ParsedAttributes & OutAttrs)

Parse this late-parsed type attribute and store results in OutAttrs.

This method can be called from Sema during type transformation to parse the cached tokens and produce the final attribute.

Definition at line 4988 of file ParseDecl.cpp.

References clang::LateParsedAttribute::Self.

◆ ParseLexedAttributes()

void LateParsedTypeAttribute::ParseLexedAttributes ( )
overridevirtual

Reimplemented from clang::LateParsedAttribute.

Definition at line 313 of file ParseCXXInlineMethods.cpp.

Member Data Documentation

◆ Info

LateParsedTypeAttrInfo clang::LateParsedTypeAttribute::Info

What Sema reads and fills in during type construction.

Definition at line 241 of file Parser.h.

Referenced by LateParsedTypeAttribute().


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