Class TranslatedVariableInitialization

Base class for any element that initializes a stack variable. Examples include local variable declarations, return statements, and throw expressions.

Import path

import semmle.code.cpp.ir.implementation.raw.internal.TranslatedInitialization

Direct supertypes

Indirect supertypes

Known direct subtypes

    Predicates

    getChild

    Gets the immediate child element of this element. The id is unique among all children of this element, but the values are not necessarily consecutive.

    getChildSuccessor

    Gets the successor instruction to which control should flow after the child element specified by child has finished execution.

    getFirstInstruction

    Get the first instruction to be executed in the evaluation of this element.

    getIRVariable

    Get the IRVariable to be initialized. This may be an IRTempVariable.

    getInitialization

    Get the initialization for the variable.

    getInitializationSuccessor

    Gets the Instruction to be executed immediately after the initialization.

    getInstructionOperand

    Gets the instruction whose result is consumed as an operand of the instruction specified by tag, with the operand specified by operandTag.

    getInstructionSuccessor

    Gets the successor instruction of the instruction that was generated by this element for tag tag. The successor edge kind is specified by kind.

    getInstructionVariable

    If the instruction specified by tag is a VariableInstruction, gets the IRVariable for that instruction.

    getTargetAddress

    Gets the instruction that produces the address of the location to be initialized.

    hasInstruction

    Holds if this element generates an instruction with opcode opcode and result type resultType. tag must be unique for each instruction generated from the same AST node (not just from the same TranslatedElement). If the instruction does not return a result, resultType should be VoidType.

    hasUninitializedInstruction

    Holds if this initialization requires an Uninitialized instruction to be emitted before evaluating the initializer.

    Inherited predicates

    getAChild

    Get the immediate child elements of this element.

    from TranslatedElement
    getAST

    Gets the AST node being translated.

    from TranslatedElement
    getExceptionSuccessorInstruction

    Gets the instruction to which control should flow if an exception is thrown within this element. This will generally return first catch block of the nearest enclosing try, or the Unwind instruction for the function if there is no enclosing try.

    from TranslatedElement
    getFunction

    Gets the Function that contains this element.

    from TranslatedElement
    getId

    Gets the an identifier string for the element. This string is unique within the scope of the element’s function.

    from TranslatedElement
    getInstruction

    Gets the instruction generated by this element with tag tag.

    from TranslatedElement
    getInstructionBuiltInOperation

    If the instruction specified by tag is a BuiltInInstruction, gets the built-in operation.

    from TranslatedElement
    getInstructionConstantValue

    If the instruction specified by tag is a ConstantValueInstruction, gets the constant value for that instruction.

    from TranslatedElement
    getInstructionElementSize

    If the instruction specified by tag is a PointerArithmeticInstruction, gets the size of the type pointed to by the pointer.

    from TranslatedElement
    getInstructionExceptionType

    If the instruction specified by tag is a CatchByTypeInstruction, gets the type of the exception to be caught.

    from TranslatedElement
    getInstructionField

    If the instruction specified by tag is a FieldInstruction, gets the Field for that instruction.

    from TranslatedElement
    getInstructionFunction

    If the instruction specified by tag is a FunctionInstruction, gets the Function for that instruction.

    from TranslatedElement
    getInstructionIndex

    If the instruction specified by tag is an IndexedInstruction, gets the index for that instruction.

    from TranslatedElement
    getInstructionInheritance

    If the instruction specified by tag is an InheritanceConversionInstruction, gets the inheritance relationship for that instruction.

    from TranslatedElement
    getInstructionOperandSize

    Gets the size of the memory operand specified by operandTag on the the instruction specified by tag. Only holds for operands whose type is UnknownType.

    from TranslatedElement
    getInstructionOperandType

    Gets the type of the memory operand specified by operandTag on the the instruction specified by tag.

    from TranslatedElement
    getInstructionResultSize

    If the instruction specified by tag has a result of type UnknownType, gets the size of the result in bytes. If the result does not have a knonwn constant size, this predicate does not hold.

    from TranslatedElement
    getInstructionStringLiteral

    If the instruction specified by tag is a StringConstantInstruction, gets the StringLiteral for that instruction.

    from TranslatedElement
    getParent

    Gets the parent element of this element.

    from TranslatedElement
    getPrimaryInstructionForSideEffect

    Gets the primary instruction for the side effect instruction that was generated by this element for tag tag.

    from TranslatedElement
    getTargetType

    Gets the type of the location to be initialized.

    from InitializationContext
    getTempVariable

    Gets the temporary variable generated by this element with tag tag.

    from TranslatedElement
    hasTempVariable

    Holds if this element generates a temporary variable with type type. tag must be unique for each variable generated from the same AST node (not just from the same TranslatedElement).

    from TranslatedElement
    needsUnknownOpaqueTypefrom TranslatedElement
    toStringfrom TranslatedElement