diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/SignAnalysisCommon.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/SignAnalysisCommon.qll index a7376d80799..a27769d02d9 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/SignAnalysisCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/new/internal/semantic/analysis/SignAnalysisCommon.qll @@ -516,12 +516,18 @@ module SignAnalysis { */ private Sign guardedSsaSignOk(SemSsaVariable v, SsaReadPosition pos) { result = TPos() and + // optimised version of + // `forex(SemExpr bound | posBound(bound, v, pos) | posBoundOk(bound, v, pos))` posBoundGuardedSsaSignOk(v, pos) or result = TNeg() and + // optimised version of + // `forex(SemExpr bound | negBound(bound, v, pos) | negBoundOk(bound, v, pos))` negBoundGuardedSsaSignOk(v, pos) or result = TZero() and + // optimised version of + // `forex(SemExpr bound | zeroBound(bound, v, pos) | zeroBoundOk(bound, v, pos))` zeroBoundGuardedSsaSignOk(v, pos) }