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) {
102 RawVAPtr |=
reinterpret_cast<uintptr_t
>(t);
107 assert (VAPtr->SizeExpr);
108 return const_cast<Stmt*&
>(VAPtr->SizeExpr);
112 VarDecl* VD = cast<VarDecl>(*DGI);
bool inSizeOfTypeVA() const
void NextDecl(bool ImmediateAdvance=true)
const Type * getTypePtr() const
Stmt *& GetDeclExpr() const
Stmt ** getInitAddress()
Retrieve the address of the initializer expression.
Base class for declarations which introduce a typedef-name.
static __inline__ uint32_t volatile uint32_t * p
static const VariableArrayType * FindVA(const Type *t)
const VariableArrayType * getVAPtr() const
QualType getElementType() const
void setVAPtr(const VariableArrayType *P)