17#include "llvm/Support/Casting.h"
26 while (
const ArrayType *vt = dyn_cast<ArrayType>(t)) {
28 if (vat->getSizeExpr())
31 t = vt->getElementType().getTypePtr();
75 if (
VarDecl* VD = dyn_cast<VarDecl>(
D)) {
86 FindVA(TD->getUnderlyingType().getTypePtr())) {
92 if (ECD->getInitExpr())
100 : DGI(dgi), RawVAPtr(DeclGroupMode), DGE(dge) {
105 : DGI(nullptr), RawVAPtr(SizeOfTypeVAMode) {
111 assert(VAPtr->SizeExpr);
112 return const_cast<Stmt*&
>(VAPtr->SizeExpr);
static const VariableArrayType * FindVA(const Type *t)
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
static const VariableArrayType * FindVA(const Type *t)
C Language Family Type Representation.
Represents an array type, per C99 6.7.5.2 - Array Declarators.
QualType getElementType() const
Decl - This represents one declaration (or definition), e.g.
An instance of this object exists for each enum constant that is defined.
const Type * getTypePtr() const
Retrieves a pointer to the underlying (unqualified) type.
void NextDecl(bool ImmediateAdvance=true)
void setVAPtr(const VariableArrayType *P)
Stmt *& GetDeclExpr() const
const VariableArrayType * getVAPtr() const
bool inSizeOfTypeVA() const
Stmt - This represents one statement.
The base class of the type hierarchy.
Base class for declarations which introduce a typedef-name.
Represents a variable declaration or definition.
Stmt ** getInitAddress()
Retrieve the address of the initializer expression.
Represents a C array with a specified size that is not an integer-constant-expression.
The JSON file list parser is used to communicate input to InstallAPI.
__UINTPTR_TYPE__ uintptr_t
An unsigned integer type with the property that any valid pointer to void can be converted to this ty...