summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/ExprConstant.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-06-04 00:22:31 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-06-04 00:22:31 +0000
commit3a09d8be7c20fc35c250a9701674a6969851291b (patch)
tree9830f81f38bc1b0a18eaf7c5cdd08d25867231e2 /clang/lib/AST/ExprConstant.cpp
parent2905d54af38aef5c4fa29ae9bea67125ffae2d0d (diff)
downloadbcm5719-llvm-3a09d8be7c20fc35c250a9701674a6969851291b.tar.gz
bcm5719-llvm-3a09d8be7c20fc35c250a9701674a6969851291b.zip
PR27989: only enqueue binary operators into the data recursive int expression
evaluator if they are actually int expressions. llvm-svn: 271754
Diffstat (limited to 'clang/lib/AST/ExprConstant.cpp')
-rw-r--r--clang/lib/AST/ExprConstant.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 6b0eae143b2..10192be7bdf 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -7112,7 +7112,9 @@ public:
static bool shouldEnqueue(const BinaryOperator *E) {
return E->getOpcode() == BO_Comma ||
E->isLogicalOp() ||
- (E->getLHS()->getType()->isIntegralOrEnumerationType() &&
+ (E->isRValue() &&
+ E->getType()->isIntegralOrEnumerationType() &&
+ E->getLHS()->getType()->isIntegralOrEnumerationType() &&
E->getRHS()->getType()->isIntegralOrEnumerationType());
}
OpenPOWER on IntegriCloud