summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ExprConstant.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2011-11-16 07:18:12 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2011-11-16 07:18:12 +0000
commitcf74da76db9ba69aac1033e23f775bc8974c48e3 (patch)
tree7b6a79591d3f6f9094d044fc9236f1986e84dbbe /clang/lib/AST/ExprConstant.cpp
parent643e63c40c6d1c29d4a6721f514bebe6d71c3a70 (diff)
downloadbcm5719-llvm-cf74da76db9ba69aac1033e23f775bc8974c48e3.tar.gz
bcm5719-llvm-cf74da76db9ba69aac1033e23f775bc8974c48e3.zip
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
Diffstat (limited to 'clang/lib/AST/ExprConstant.cpp')
-rw-r--r--clang/lib/AST/ExprConstant.cpp1
1 files changed, 1 insertions, 0 deletions
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;
}
OpenPOWER on IntegriCloud