From: Richard Smith Date: Mon, 31 Oct 2011 20:20:33 +0000 (+0000) Subject: Temporary fix for assert while evaluating array-to-pointer decay on array X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aa97b53175ef138144f69dbc7fda6870c5740226;p=clang Temporary fix for assert while evaluating array-to-pointer decay on array rvalue. Test and better fix to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143360 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp index 9e1e75d702..a12beb5179 100644 --- a/lib/AST/ExprConstant.cpp +++ b/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);