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().