CodeQL library for C/C++
codeql/cpp-all 1.1.0 (changelog, source)

Member predicate Stmt::isPure

Holds if this statement is side-effect free (a conservative approximation; that is, it may be side-effect free even if this predicate doesn’t hold).

This predicate cannot be overridden; override mayBeImpure() instead.

Note that this predicate only considers whether the statement has any side-effects, such as writing to a file. Even if it holds, the statement may be impure in the sense that its behavior is affected by external factors, such as the contents of global variables.

predicate isPure()