mirror of
https://github.com/github/codeql.git
synced 2025-12-23 20:26:32 +01:00
C++: Move overflow detection to SimpleRangeAnalysis.qll
This commit is contained in:
@@ -8,6 +8,7 @@ private import semmle.code.cpp.ir.IR
|
|||||||
private import experimental.semmle.code.cpp.semantic.SemanticBound
|
private import experimental.semmle.code.cpp.semantic.SemanticBound
|
||||||
private import experimental.semmle.code.cpp.semantic.SemanticExprSpecific
|
private import experimental.semmle.code.cpp.semantic.SemanticExprSpecific
|
||||||
private import RangeAnalysis
|
private import RangeAnalysis
|
||||||
|
private import semmle.code.cpp.rangeanalysis.RangeAnalysisUtils
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the lower bound of the expression.
|
* Gets the lower bound of the expression.
|
||||||
@@ -90,7 +91,7 @@ predicate defMightOverflow(RangeSsaDefinition def, StackVariable v) {
|
|||||||
* does not consider the possibility that the expression might overflow
|
* does not consider the possibility that the expression might overflow
|
||||||
* due to a conversion.
|
* due to a conversion.
|
||||||
*/
|
*/
|
||||||
predicate exprMightOverflowNegatively(Expr expr) { none() }
|
predicate exprMightOverflowNegatively(Expr expr) { lowerBound(expr) < exprMinVal(expr) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the expression might overflow negatively. Conversions
|
* Holds if the expression might overflow negatively. Conversions
|
||||||
@@ -108,7 +109,7 @@ predicate convertedExprMightOverflowNegatively(Expr expr) {
|
|||||||
* does not consider the possibility that the expression might overflow
|
* does not consider the possibility that the expression might overflow
|
||||||
* due to a conversion.
|
* due to a conversion.
|
||||||
*/
|
*/
|
||||||
predicate exprMightOverflowPositively(Expr expr) { none() }
|
predicate exprMightOverflowPositively(Expr expr) { upperBound(expr) > exprMaxVal(expr) }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds if the expression might overflow positively. Conversions
|
* Holds if the expression might overflow positively. Conversions
|
||||||
|
|||||||
Reference in New Issue
Block a user