Files
codeql/cpp/ql/test/library-tests/scopes/scopes/Scopes2.ql
Jonas Jensen 4ef5c9af62 C++: Autoformat everything
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
2019-09-09 11:25:53 +02:00

23 lines
446 B
Plaintext

/**
* @name Scopes2
* @kind table
*/
import cpp
// This test finds places where Element.getParentScope() isn't tree-like. There
// should be no results.
from Element e, int i
where
i = count(e.getParentScope()) and
(
i > 1 // multiple parents
or
e.getParentScope+() = e // cyclic parent relation
or
// not GlobalNamespace ancestor
i > 0 and
not e.getParentScope+() instanceof GlobalNamespace
)
select e, i