diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-10-31 20:20:33 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-10-31 20:20:33 +0000 |
| commit | fdc6a5956a94c9bb8af08ae123edffaf342e6b7c (patch) | |
| tree | 7e9ac3e614f8da39d28d60c6b6b2bcb27f87fd91 /clang/lib | |
| parent | 773f8ad66bf98943925e5ee374291440ff6e5e8e (diff) | |
| download | bcm5719-llvm-fdc6a5956a94c9bb8af08ae123edffaf342e6b7c.tar.gz bcm5719-llvm-fdc6a5956a94c9bb8af08ae123edffaf342e6b7c.zip | |
Temporary fix for assert while evaluating array-to-pointer decay on array
rvalue. Test and better fix to follow.
llvm-svn: 143360
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/ExprConstant.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 9e1e75d7021..a12beb51792 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -1223,7 +1223,9 @@ bool PointerExprEvaluator::VisitCastExpr(const CastExpr* E) { } case CK_ArrayToPointerDecay: case CK_FunctionToPointerDecay: - return EvaluateLValue(SubExpr, Result, Info); + if (SubExpr->isGLValue() || SubExpr->getType()->isFunctionType()) + return EvaluateLValue(SubExpr, Result, Info); + return Error(E); } return ExprEvaluatorBaseTy::VisitCastExpr(E); |

