Member predicate BlockStmt::mayBeGloballyImpure
Holds if it is possible that this statement is globally impure.
Similar to mayBeImpure()
, except that mayBeGloballyImpure()
does not consider modifications to temporary local variables to be
impure. That is, if you call a function in which
mayBeGloballyImpure()
doesn’t hold for any statement, then the
function as a whole will have no side-effects, even if it mutates
its own fresh stack variables.
predicate mayBeGloballyImpure()