mirror of
https://github.com/github/codeql.git
synced 2026-04-14 11:34:00 +02:00
Some files that will change in #1736 have been spared. ./build -j4 target/jars/qlformat find ql/cpp/ql -name "*.ql" -print0 | xargs -0 target/jars/qlformat --input find ql/cpp/ql -name "*.qll" -print0 | xargs -0 target/jars/qlformat --input (cd ql && git checkout 'cpp/ql/src/semmle/code/cpp/ir/implementation/**/*SSA*.qll') buildutils-internal/scripts/pr-checks/sync-identical-files.py --latest
16 lines
503 B
Plaintext
16 lines
503 B
Plaintext
/**
|
|
* @name dostmt04
|
|
* @description In normal, the do condition or one of the condition's descendants is the unique successor of the exit point of the last statement in the body.
|
|
*/
|
|
|
|
import cpp
|
|
|
|
from DoStmt ds, ExprStmt last, Expr succ
|
|
where
|
|
ds.getEnclosingFunction().hasName("normal") and
|
|
last = ds.getStmt().(Block).getLastStmt() and
|
|
succ = last.getExpr().getASuccessor() and
|
|
succ = ds.getCondition().getAChild*() and
|
|
count(last.getExpr().getASuccessor()) = 1
|
|
select last.getExpr(), succ
|