clang API Documentation
#include <Type.h>
Public Member Functions | |
Expr * | getSizeExpr () const |
SourceRange | getBracketsRange () const |
SourceLocation | getLBracketLoc () const |
SourceLocation | getRBracketLoc () const |
bool | isSugared () const |
QualType | desugar () const |
void | Profile (llvm::FoldingSetNodeID &ID) |
Static Public Member Functions | |
static bool | classof (const Type *T) |
Friends | |
class | ASTContext |
class | StmtIteratorBase |
VariableArrayType - This class represents C arrays with a specified size which is not an integer-constant-expression. For example, 'int s[x+foo()]'. Since the size expression is an arbitrary expression, we store it as such.
Note: VariableArrayType's aren't uniqued (since the expressions aren't) and should not be: two lexically equivalent variable array types could mean different things, for example, these variables do not have the same type dynamically:
void foo(int x) { int Y[x]; ++x; int Z[x]; }
static bool clang::VariableArrayType::classof | ( | const Type * | T | ) | [inline, static] |
Reimplemented from clang::ArrayType.
Definition at line 2414 of file Type.h.
References clang::Type::getTypeClass().
QualType clang::VariableArrayType::desugar | ( | ) | const [inline] |
SourceRange clang::VariableArrayType::getBracketsRange | ( | ) | const [inline] |
Definition at line 2407 of file Type.h.
Referenced by clang::ASTContext::getAsArrayType(), clang::ASTContext::getVariableArrayDecayedType(), and clang::ASTNodeImporter::VisitVariableArrayType().
SourceLocation clang::VariableArrayType::getLBracketLoc | ( | ) | const [inline] |
SourceLocation clang::VariableArrayType::getRBracketLoc | ( | ) | const [inline] |
Expr* clang::VariableArrayType::getSizeExpr | ( | ) | const [inline] |
Definition at line 2402 of file Type.h.
Referenced by clang::Sema::CheckVariableDeclarationType(), clang::CodeGen::CodeGenFunction::EmitVariablyModifiedType(), clang::ASTContext::getAsArrayType(), clang::CodeGen::CodeGenFunction::getVLASize(), IsStructurallyEquivalent(), clang::Sema::tryCaptureVariable(), TryToFixInvalidVariablyModifiedType(), and clang::ASTNodeImporter::VisitVariableArrayType().
bool clang::VariableArrayType::isSugared | ( | ) | const [inline] |
void clang::VariableArrayType::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | [inline] |
friend class ASTContext [friend] |
Reimplemented from clang::ArrayType.
friend class StmtIteratorBase [friend] |