CodeQL library for C#
codeql/csharp-all 0.9.0 (changelog, source)
Search

Class Ssa::UncertainDefinition

An SSA definition that represents an uncertain update of the underlying assignable. Either an explicit update that is uncertain (ref assignments need not be certain), an implicit non-local update via a call, or an uncertain update of the qualifier.

Import path

import csharp

Direct supertypes

Indirect supertypes

Known direct subtypes

    Predicates

    getPriorDefinition

    Gets the immediately preceding definition. Since this update is uncertain, the value from the preceding definition might still be valid.

    Inherited predicates

    definesAt

    Holds if this SSA definition defines v at index i in basic block bb. Phi nodes are considered to be at index -1, while normal variable writes are at the index of the control flow node they wrap.

    from Definition
    getAFirstRead

    Gets a read of the source variable underlying this SSA definition that can be reached from this SSA definition without passing through any other SSA definition or read. Example:

    from Definition
    getAFirstReadAtNode

    Gets a read of the source variable underlying this SSA definition at control flow node cfn that can be reached from this SSA definition without passing through any other SSA definition or read. Example:

    from Definition
    getALastRead

    Gets a last read of the source variable underlying this SSA definition. That is, a read that can reach the end of the enclosing callable, or another SSA definition for the source variable, without passing through any other read. Example:

    from Definition
    getALastReadAtNode

    Gets a last read of the source variable underlying this SSA definition at control flow node cfn. That is, a read that can reach the end of the enclosing callable, or another SSA definition for the source variable, without passing through any other read. Example:

    from Definition
    getARead

    Gets a read of the source variable underlying this SSA definition that can be reached from this SSA definition without passing through any other SSA definitions. Example:

    from Definition
    getAReadAtNode

    Gets a read of the source variable underlying this SSA definition at control flow node cfn that can be reached from this SSA definition without passing through any other SSA definitions. Example:

    from Definition
    getAnUltimateDefinition

    Gets a definition that ultimately defines this SSA definition and is not itself a phi node. Example:

    from Definition
    getBasicBlock

    Gets the basic block to which this SSA definition belongs.

    from Definition
    getControlFlowNode

    Gets the control flow node of this SSA definition, if any. Phi nodes are examples of SSA definitions without a control flow node, as they are modeled at index -1 in the relevant basic block.

    from Definition
    getElement

    Gets the syntax element associated with this SSA definition, if any. This is either an expression, for example x = 0, a parameter, or a callable. Phi nodes have no associated syntax element.

    from Definition
    getEnclosingCallable

    Gets the callable to which this SSA definition belongs.

    from Definition
    getLocation

    Gets the location of this SSA definition.

    from Definition
    getSourceVariable

    Gets the source variable underlying this SSA definition.

    from Definition
    isLiveAtEndOfBlock

    Holds if this SSA definition is live at the end of basic block bb. That is, this definition reaches the end of basic block bb, at which point it is still live, without crossing another SSA definition of the same source variable.

    from Definition
    isLiveOutRefParameterDefinition

    Holds if this SSA definition assigns to out/ref parameter p, and the parameter may remain unchanged throughout the rest of the enclosing callable.

    from Definition
    toString

    Gets a textual representation of this SSA definition.

    from Definition