Module FlowVar_internal
Provides classes and predicates that ought to be private but cannot use the
private
annotation because they may be referred to by unit tests.
Import path
import semmle.code.cpp.dataflow.internal.FlowVar
Predicates
allReadsDominatedByOverwrite | Holds if all read accesses of |
assignmentLikeOperation | Holds if |
blockVarDefinedByVariable | Holds if |
dominatedByOverwrite | Holds if |
fullySupportedSsaVariable | For various reasons, not all variables handled perfectly by the SSA library. Ideally, this predicate should become larger as the SSA library improves. Before we can remove the |
getAnIteratorAccess | |
getAnOverwritingBB | Gets a basic block in which |
indexOfFirstOverwriteInBB | |
initializer | Holds if |
mayBeUsedUninitialized | Holds if |
notAccessedAtStartOfBB | Holds if |
overwrite | Holds if the value of the variable accessed at |
parameterIsNonConstReference | |
parameterUsedInConstructorFieldInit | Holds if |
readAccess | Holds if the value of the variable accessed at |
skipLoop | Holds if |
Classes
AlwaysTrueUponEntryLoop | A for-loop or while-loop whose condition is always true upon entry but not always true after the first iteration. |
BlockVar | A variable whose analysis is backed by a simple control flow analysis that does not perform as well as the SSA library but gives better results for data flow purposes in some cases. |
DataFlowSubBasicBlockCutNode | A point in a basic block where a non-SSA variable may have a different value than it did elsewhere in the same basic block. Extending this class configures the |
IteratorParameter | |
PointerWrapperParameter | |
SsaVar | A variable whose analysis is backed by the SSA library. |
UninitializedLocalVariable | A local variable that is uninitialized immediately after its declaration. |