17 using namespace clang;
22 while (
const ArrayType *vt = dyn_cast<ArrayType>(t)) {
24 if (vat->getSizeExpr())
27 t = vt->getElementType().getTypePtr();
71 if (
VarDecl* VD = dyn_cast<VarDecl>(D)) {
82 FindVA(TD->getUnderlyingType().getTypePtr())) {
88 if (ECD->getInitExpr())
96 : DGI(dgi), RawVAPtr(DeclGroupMode), DGE(dge) {
101 : DGI(nullptr), RawVAPtr(SizeOfTypeVAMode) {
107 assert (VAPtr->SizeExpr);
108 return const_cast<Stmt*&
>(VAPtr->SizeExpr);
112 VarDecl* VD = cast<VarDecl>(*DGI);
EnumConstantDecl - An instance of this object exists for each enum constant that is defined...
The base class of the type hierarchy.
Represents an array type, per C99 6.7.5.2 - Array Declarators.
bool inSizeOfTypeVA() const
VarDecl - An instance of this class is created to represent a variable declaration or definition...
void NextDecl(bool ImmediateAdvance=true)
Stmt ** getInitAddress()
Retrieve the address of the initializer expression.
__UINTPTR_TYPE__ uintptr_t
An unsigned integer type with the property that any valid pointer to void can be converted to this ty...
const Type * getTypePtr() const
Retrieves a pointer to the underlying (unqualified) type.
Stmt *& GetDeclExpr() const
Base class for declarations which introduce a typedef-name.
static const VariableArrayType * FindVA(const Type *t)
const VariableArrayType * getVAPtr() const
QualType getElementType() const
void setVAPtr(const VariableArrayType *P)
Represents a C array with a specified size that is not an integer-constant-expression.