Files
codeql/cpp/ql/test/successor-tests/initializer/aggregateinitializer/aggregateinitializer01.ql
2018-08-02 17:53:23 +01:00

24 lines
856 B
Plaintext

import cpp
string getASuccessorOrNone(ControlFlowNode n) {
if exists(n.getASuccessor())
then exists (ControlFlowNode s, string trueSucc, string falseSucc |
s = n.getASuccessor()
and if s = n.getATrueSuccessor() then trueSucc = "<true> "
else trueSucc = ""
and if s = n.getAFalseSuccessor() then falseSucc = "<false> "
else falseSucc = ""
and result = trueSucc + falseSucc + s.toString())
else result = "<none>"
}
from ControlFlowNode n
select n.getLocation().getFile().getShortName(),
n.getControlFlowScope(),
n.getLocation().getStartLine(),
count(n.getAPredecessor*()), // This helps order things sensibly
n.getLocation(),
n,
getASuccessorOrNone(n)