diff options
Diffstat (limited to 'clang/lib/StaticAnalyzer')
| -rw-r--r-- | clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp | 10 | ||||
| -rw-r--r-- | clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp | 11 |
2 files changed, 12 insertions, 9 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp b/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp index eac07e659dc..9b2dc32e060 100644 --- a/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp +++ b/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp @@ -463,12 +463,12 @@ bool AnalyzerOptions::shouldDisplayNotesAsEvents() { return DisplayNotesAsEvents.getValue(); } -bool AnalyzerOptions::shouldAggressivelySimplifyRelationalComparison() { - if (!AggressiveRelationalComparisonSimplification.hasValue()) - AggressiveRelationalComparisonSimplification = - getBooleanOption("aggressive-relational-comparison-simplification", +bool AnalyzerOptions::shouldAggressivelySimplifyBinaryOperation() { + if (!AggressiveBinaryOperationSimplification.hasValue()) + AggressiveBinaryOperationSimplification = + getBooleanOption("aggressive-binary-operation-simplification", /*Default=*/false); - return AggressiveRelationalComparisonSimplification.getValue(); + return AggressiveBinaryOperationSimplification.getValue(); } StringRef AnalyzerOptions::getCTUDir() { diff --git a/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp b/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp index 7163e380e6c..beae0dfae28 100644 --- a/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp +++ b/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp @@ -456,14 +456,17 @@ static Optional<NonLoc> tryRearrange(ProgramStateRef State, auto &Opts = StateMgr.getOwningEngine()->getAnalysisManager().getAnalyzerOptions(); + // FIXME: After putting complexity threshold to the symbols we can always + // rearrange additive operations but rearrange comparisons only if + // option is set. + if(!Opts.shouldAggressivelySimplifyBinaryOperation()) + return None; + SymbolRef LSym = Lhs.getAsSymbol(); if (!LSym) return None; - // Always rearrange additive operations but rearrange comparisons only if - // option is set. - if (BinaryOperator::isComparisonOp(Op) && - Opts.shouldAggressivelySimplifyRelationalComparison()) { + if (BinaryOperator::isComparisonOp(Op)) { SingleTy = LSym->getType(); if (ResultTy != SVB.getConditionType()) return None; |

