mirror of
https://github.com/github/codeql.git
synced 2026-03-26 01:08:16 +01:00
Also moved those tests under the IR test directory, so I'm less likely to forget them next time.
23 lines
590 B
Plaintext
23 lines
590 B
Plaintext
import default
|
|
import semmle.code.cpp.ir.implementation.unaliased_ssa.internal.AliasAnalysis
|
|
import semmle.code.cpp.ir.implementation.raw.IR
|
|
|
|
predicate shouldEscape(IRAutomaticUserVariable var) {
|
|
exists(string name |
|
|
name = var.getVariable().getName() and
|
|
name.matches("no_%") and
|
|
not name.matches("no_ssa_%")
|
|
)
|
|
}
|
|
|
|
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
|