diff options
author | Nate Begeman <natebegeman@mac.com> | 2009-01-18 03:20:47 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2009-01-18 03:20:47 +0000 |
commit | 2f2bdeb5dfeff7e8066ce51b372e841254cfb91e (patch) | |
tree | 21f30567e87f2a5edb77dcf5950f770dfc6e59b6 /clang/lib/AST/Expr.cpp | |
parent | 144aacd19ef6dc25755c69048d4cb3a4a383ae8a (diff) | |
download | bcm5719-llvm-2f2bdeb5dfeff7e8066ce51b372e841254cfb91e.tar.gz bcm5719-llvm-2f2bdeb5dfeff7e8066ce51b372e841254cfb91e.zip |
Support evaluation of vector constant expressions, and codegen of same.
llvm-svn: 62455
Diffstat (limited to 'clang/lib/AST/Expr.cpp')
-rw-r--r-- | clang/lib/AST/Expr.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 4dd06b924a2..03b49499ee2 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -487,6 +487,7 @@ Expr::isLvalueResult Expr::isLvalue(ASTContext &Ctx) const { // An assignment expression [...] is not an lvalue. return LV_InvalidExpression; } + // FIXME: OverloadExprClass case CallExprClass: case CXXOperatorCallExprClass: case CXXMemberCallExprClass: { @@ -701,6 +702,10 @@ bool Expr::isConstantExpr(ASTContext &Ctx, SourceLocation *Loc) const { break; case StringLiteralClass: return true; + case CompoundLiteralExprClass: { + const Expr *Exp = cast<CompoundLiteralExpr>(this)->getInitializer(); + return Exp->isConstantExpr(Ctx, Loc); + } case InitListExprClass: { const InitListExpr *Exp = cast<InitListExpr>(this); unsigned numInits = Exp->getNumInits(); |