aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/ExprConstant.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2011-11-01 20:38:59 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2011-11-01 20:38:59 +0000
commit344d78d6a669fb324f89937fc0739f97670f4700 (patch)
tree75ec92caa37b7d823792f9fe45733faa1c11ce21 /lib/AST/ExprConstant.cpp
parentef84af9d0015ebb4abb7ea62a790a661b6253246 (diff)
Temporarily disable lvalue-to-rvalue conversions on const pointers while an
apparent miscompile triggered by this is investigated. This is essentially a revert of r143298. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143491 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ExprConstant.cpp')
-rw-r--r--lib/AST/ExprConstant.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 7fe03b58a0..4dd49c9125 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -461,7 +461,8 @@ bool HandleLValueToRValueConversion(EvalInfo &Info, QualType Type,
// them are not permitted.
const VarDecl *VD = dyn_cast<VarDecl>(D);
if (!VD || !(IsConstNonVolatile(VD->getType()) || isa<ParmVarDecl>(VD)) ||
- !Type->isLiteralType() || !EvaluateVarDeclInit(Info, VD, Frame, RVal))
+ !(Type->isIntegralOrEnumerationType() || Type->isRealFloatingType()) ||
+ !EvaluateVarDeclInit(Info, VD, Frame, RVal))
return false;
if (isa<ParmVarDecl>(VD) || !VD->getAnyInitializer()->isLValue())