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] |