|
clang 23.0.0git
|
We can encode up to four bits in the low bits of a type pointer, but there are many more type qualifiers that we want to be able to apply to an arbitrary type. More...
#include "clang/AST/TypeBase.h"
Public Member Functions | |
| ExtQuals (const Type *baseType, QualType canon, Qualifiers quals) | |
| Qualifiers | getQualifiers () const |
| bool | hasObjCGCAttr () const |
| Qualifiers::GC | getObjCGCAttr () const |
| bool | hasObjCLifetime () const |
| Qualifiers::ObjCLifetime | getObjCLifetime () const |
| bool | hasAddressSpace () const |
| LangAS | getAddressSpace () const |
| const Type * | getBaseType () const |
| void | Profile (llvm::FoldingSetNodeID &ID) const |
Static Public Member Functions | |
| static void | Profile (llvm::FoldingSetNodeID &ID, const Type *BaseType, Qualifiers Quals) |
We can encode up to four bits in the low bits of a type pointer, but there are many more type qualifiers that we want to be able to apply to an arbitrary type.
Therefore we have this struct, intended to be heap-allocated and used by QualType to store qualifiers.
The current design tags the 'const', 'restrict', and 'volatile' qualifiers in three low bits on the QualType pointer; a fourth bit records whether the pointer is an ExtQuals node. The extended qualifiers (address spaces, Objective-C GC attributes) are much more rare.
Definition at line 1722 of file TypeBase.h.
|
inline |
Definition at line 1744 of file TypeBase.h.
References clang::ExtQualsTypeCommonBase::QualType, and clang::ExtQualsTypeCommonBase::Type.
|
inline |
Definition at line 1765 of file TypeBase.h.
|
inline |
Definition at line 1767 of file TypeBase.h.
References clang::ExtQualsTypeCommonBase::Type.
Referenced by Profile(), clang::QualType::split(), and clang::QualifierCollector::strip().
|
inline |
Definition at line 1757 of file TypeBase.h.
|
inline |
Definition at line 1760 of file TypeBase.h.
|
inline |
Definition at line 1754 of file TypeBase.h.
Referenced by clang::QualType::split(), and clang::QualifierCollector::strip().
|
inline |
Definition at line 1764 of file TypeBase.h.
|
inline |
Definition at line 1756 of file TypeBase.h.
|
inline |
Definition at line 1759 of file TypeBase.h.
|
inline |
Definition at line 1770 of file TypeBase.h.
References getBaseType(), and Profile().
Referenced by Profile().
|
inlinestatic |
Definition at line 1774 of file TypeBase.h.
References clang::ExtQualsTypeCommonBase::Type.