From 200d7ed360572c8a3d6306f50a535ef9fea07cf5 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 27 Apr 2020 11:36:28 +0100 Subject: [PATCH] C++: Remove if-else. --- .../cpp/models/implementations/Allocation.qll | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/cpp/ql/src/semmle/code/cpp/models/implementations/Allocation.qll b/cpp/ql/src/semmle/code/cpp/models/implementations/Allocation.qll index 5f1513cb45d..782800d0fa2 100644 --- a/cpp/ql/src/semmle/code/cpp/models/implementations/Allocation.qll +++ b/cpp/ql/src/semmle/code/cpp/models/implementations/Allocation.qll @@ -282,25 +282,21 @@ class OperatorNewAllocationFunction extends AllocationFunction { * is `a * 2` and `sizeof` is `4`. */ private predicate deconstructSizeExpr(Expr sizeExpr, Expr lengthExpr, int sizeof) { - if - sizeExpr instanceof MulExpr and - exists(SizeofOperator sizeofOp, Expr lengthOp | - sizeofOp = sizeExpr.(MulExpr).getAnOperand() and - lengthOp = sizeExpr.(MulExpr).getAnOperand() and - not lengthOp instanceof SizeofOperator and - exists(sizeofOp.getValue().toInt()) - ) - then - exists(SizeofOperator sizeofOp | - sizeofOp = sizeExpr.(MulExpr).getAnOperand() and - lengthExpr = sizeExpr.(MulExpr).getAnOperand() and - not lengthExpr instanceof SizeofOperator and - sizeof = sizeofOp.getValue().toInt() - ) - else ( - lengthExpr = sizeExpr and - sizeof = 1 + exists(SizeofOperator sizeofOp | + sizeofOp = sizeExpr.(MulExpr).getAnOperand() and + lengthExpr = sizeExpr.(MulExpr).getAnOperand() and + not lengthExpr instanceof SizeofOperator and + sizeof = sizeofOp.getValue().toInt() ) + or + not exists(SizeofOperator sizeofOp, Expr lengthOp | + sizeofOp = sizeExpr.(MulExpr).getAnOperand() and + lengthOp = sizeExpr.(MulExpr).getAnOperand() and + not lengthOp instanceof SizeofOperator and + exists(sizeofOp.getValue().toInt()) + ) and + lengthExpr = sizeExpr and + sizeof = 1 } /**