mirror of
https://github.com/github/codeql.git
synced 2026-03-28 02:08:17 +01:00
Also moved those tests under the IR test directory, so I'm less likely to forget them next time.
22 lines
561 B
Plaintext
22 lines
561 B
Plaintext
import default
|
|
import semmle.code.cpp.ir.implementation.aliased_ssa.internal.AliasAnalysis
|
|
import semmle.code.cpp.ir.implementation.unaliased_ssa.IR
|
|
|
|
predicate shouldEscape(IRAutomaticUserVariable var) {
|
|
exists(string name |
|
|
name = var.getVariable().getName() and
|
|
name.matches("no_%")
|
|
)
|
|
}
|
|
|
|
from IRAutomaticUserVariable var
|
|
where
|
|
exists(FunctionIR funcIR |
|
|
funcIR = var.getFunctionIR() and
|
|
(
|
|
(shouldEscape(var) and variableAddressEscapes(var)) or
|
|
(not shouldEscape(var) and not variableAddressEscapes(var))
|
|
)
|
|
)
|
|
select var
|