From cf74da76db9ba69aac1033e23f775bc8974c48e3 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 16 Nov 2011 07:18:12 +0000 Subject: Fix PR11385: A pointer constant expression which has been cast via an integer is not safely derived. Don't allow lvalue-to-rvalue conversions on the result of dereferencing such a pointer. llvm-svn: 144783 --- clang/lib/AST/ExprConstant.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'clang/lib/AST/ExprConstant.cpp') diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp index 1451fd11195..699d81715e3 100644 --- a/clang/lib/AST/ExprConstant.cpp +++ b/clang/lib/AST/ExprConstant.cpp @@ -3197,6 +3197,7 @@ bool IntExprEvaluator::VisitCastExpr(const CastExpr *E) { if (Info.Ctx.getTypeSize(DestType) != Info.Ctx.getTypeSize(SrcType)) return false; + LV.Designator.setInvalid(); LV.moveInto(Result); return true; } -- cgit v1.2.3