clang 22.0.0git
|
A metaprogramming base class for TypeLoc classes which correspond to a particular Type subclass. More...
#include "clang/AST/TypeLoc.h"
Classes | |
struct | HasNoInnerType |
Public Member Functions | |
unsigned | getLocalDataAlignment () const |
unsigned | getLocalDataSize () const |
void | copyLocal (Derived other) |
TypeLoc | getNextTypeLoc () const |
const TypeClass * | getTypePtr () const |
Protected Member Functions | |
unsigned | getExtraLocalDataSize () const |
unsigned | getExtraLocalDataAlignment () const |
LocalData * | getLocalData () const |
void * | getExtraLocalData () const |
Gets a pointer past the Info structure; useful for classes with local data that can't be captured in the Info (e.g. | |
void * | getNonLocalData () const |
HasNoInnerType | getInnerType () const |
TypeLoc | getInnerTypeLoc () const |
Friends | |
class | TypeLoc |
A metaprogramming base class for TypeLoc classes which correspond to a particular Type subclass.
It is accepted for a single TypeLoc class to correspond to multiple Type classes.
Base | a class from which to derive |
Derived | the class deriving from this one |
TypeClass | the concrete Type subclass associated with this location type |
LocalData | the structure type of local location data for this type |
TypeLocs with non-constant amounts of local data should override getExtraLocalDataSize(); getExtraLocalData() will then point to this extra memory.
TypeLocs with an inner type should define QualType getInnerType() const and getInnerTypeLoc() will then point to this inner type's location data.
A word about hierarchies: this template is not designed to be derived from multiple times in a hierarchy. It is also not designed to be used for classes where subtypes might provide different amounts of source information. It should be subclassed only at the deepest portion of the hierarchy where all children have identical source information; if that's an abstract type, then further descendents should inherit from InheritingConcreteTypeLoc instead.
|
inline |
Definition at line 420 of file TypeLoc.h.
References getExtraLocalData(), getExtraLocalDataSize(), getLocalData(), getLocalDataSize(), and memcpy().
|
inlineprotected |
Gets a pointer past the Info structure; useful for classes with local data that can't be captured in the Info (e.g.
because it's of variable size).
Definition at line 458 of file TypeLoc.h.
Referenced by copyLocal().
|
inlineprotected |
Definition at line 447 of file TypeLoc.h.
Referenced by getLocalDataAlignment().
|
inlineprotected |
Definition at line 443 of file TypeLoc.h.
Referenced by copyLocal().
|
inlineprotected |
Definition at line 473 of file TypeLoc.h.
Referenced by getInnerTypeLoc(), and getNextTypeLoc().
|
inlineprotected |
Definition at line 475 of file TypeLoc.h.
References getInnerType(), getNonLocalData(), and TypeLoc.
|
inlineprotected |
Definition at line 451 of file TypeLoc.h.
Referenced by copyLocal().
|
inline |
Definition at line 406 of file TypeLoc.h.
References getExtraLocalDataAlignment().
Referenced by getLocalDataSize().
|
inline |
Definition at line 411 of file TypeLoc.h.
References getLocalDataAlignment().
Referenced by copyLocal().
|
inline |
Definition at line 434 of file TypeLoc.h.
References getInnerType(), getNextTypeLoc(), and TypeLoc.
Referenced by getNextTypeLoc(), and GetTypeSourceInfoForDeclarator().
|
inlineprotected |
Definition at line 465 of file TypeLoc.h.
Referenced by getInnerTypeLoc().
|
inline |
Definition at line 438 of file TypeLoc.h.
References clang::cast().
Referenced by clang::Sema::ActOnTypeName(), AddObjCProperties(), clang::comments::DeclInfo::fill(), fillAttributedTypeLoc(), fillHLSLAttributedResourceTypeLoc(), clang::Sema::getTemplateArgumentPackExpansionPattern(), GetTypeSourceInfoForDeclarator(), isEnableIf(), clang::TreeTransform< Derived >::TransformFunctionTypeParams(), clang::TreeTransform< Derived >::TransformReferenceType(), and clang::TreeTransform< Derived >::TransformTagType().
Definition at line 390 of file TypeLoc.h.
References TypeLoc.
Referenced by getInnerTypeLoc(), getNextTypeLoc(), and TypeLoc.