clang API Documentation
#include <Type.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 |
unsigned | 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) |
ExtQuals - 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.
clang::ExtQuals::ExtQuals | ( | const Type * | baseType, |
QualType | canon, | ||
Qualifiers | quals | ||
) | [inline] |
unsigned clang::ExtQuals::getAddressSpace | ( | ) | const [inline] |
const Type* clang::ExtQuals::getBaseType | ( | ) | const [inline] |
Definition at line 1103 of file Type.h.
Referenced by clang::QualType::split(), and clang::QualifierCollector::strip().
Qualifiers::GC clang::ExtQuals::getObjCGCAttr | ( | ) | const [inline] |
Qualifiers::ObjCLifetime clang::ExtQuals::getObjCLifetime | ( | ) | const [inline] |
Qualifiers clang::ExtQuals::getQualifiers | ( | ) | const [inline] |
Definition at line 1090 of file Type.h.
Referenced by clang::QualType::split(), and clang::QualifierCollector::strip().
bool clang::ExtQuals::hasAddressSpace | ( | ) | const [inline] |
bool clang::ExtQuals::hasObjCGCAttr | ( | ) | const [inline] |
bool clang::ExtQuals::hasObjCLifetime | ( | ) | const [inline] |
void clang::ExtQuals::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | const [inline] |
static void clang::ExtQuals::Profile | ( | llvm::FoldingSetNodeID & | ID, |
const Type * | BaseType, | ||
Qualifiers | Quals | ||
) | [inline, static] |
Definition at line 1109 of file Type.h.
References clang::Qualifiers::hasFastQualifiers(), and clang::Qualifiers::Profile().