Module Instruction
Provides classes that represent the individual instructions in the IR for a function.
Import path
import semmle.code.cpp.ir.implementation.aliased_ssa.Instruction
Imports
EdgeKind |
Provides classes that specify the conditions under which control flows along a given edge. |
IRBlock |
Provides classes describing basic blocks in the IR of a function. |
IRFunction |
Provides the class |
IRType |
Minimal, language-neutral type system for the IR. |
IRVariable |
Provides classes that represent variables accessed by the IR. |
MemoryAccessKind |
Provides classes that describe how a particular |
Opcode |
Provides |
Operand |
Provides classes that represent the input values of IR instructions. |
Classes
AddInstruction |
An instruction that computes the sum of two numeric operands. |
AliasedDefinitionInstruction |
An instruction that initializes all escaped memory. |
AliasedUseInstruction |
An instruction that consumes all escaped memory on exit from the function. |
ArithmeticInstruction |
An instruction that computes the result of an arithmetic operation. |
BinaryArithmeticInstruction |
An instruction that performs an arithmetic operation on two numeric operands. |
BinaryBitwiseInstruction |
An instruction that performs a bitwise operation on two integer operands. |
BinaryInstruction |
An instruction whose result is computed from two operands. |
BitAndInstruction |
An instruction that computes the bitwise “and” of two integer operands. |
BitComplementInstruction |
An instruction that computes the bitwise complement of its operand. |
BitOrInstruction |
An instruction that computes the bitwise “or” of two integer operands. |
BitXorInstruction |
An instruction that computes the bitwise “xor” of two integer operands. |
BitwiseInstruction |
An instruction that computes the result of a bitwise operation. |
BufferMayWriteSideEffectInstruction |
An instruction representing the write of an indirect buffer parameter within a function call. |
BufferMustWriteSideEffectInstruction |
An instruction representing the write of an indirect buffer parameter within a function call. The entire buffer is overwritten. |
BufferReadSideEffectInstruction |
An instruction representing the read of an indirect buffer parameter within a function call. |
BuiltInInstruction |
An instruction representing a built-in operation that does not have a specific opcode. The actual operation is specified by the |
BuiltInOperationInstruction |
An instruction representing a built-in operation. |
CallInstruction |
An instruction that calls a function. |
CallReadSideEffectInstruction |
An instruction representing the side effect of a function call on any memory that might be read by that call. |
CallSideEffectInstruction |
An instruction representing the side effect of a function call on any memory that might be accessed by that call. |
CatchAnyInstruction |
An instruction that catches any exception. |
CatchByTypeInstruction |
An instruction that catches an exception of a specific type. |
CatchInstruction |
An instruction that starts a |
CheckedConvertOrNullInstruction |
An instruction that converts the address of a polymorphic object to the address of a different subobject of the same polymorphic object, returning a null address if the dynamic type of the object is not compatible with the result type. |
CheckedConvertOrThrowInstruction |
An instruction that converts the address of a polymorphic object to the address of a different subobject of the same polymorphic object, throwing an exception if the dynamic type of the object is not compatible with the result type. |
ChiInstruction |
An instruction representing the effect that a write to a memory may have on potential aliases of that memory. |
CompareEQInstruction |
An instruction that returns a |
CompareGEInstruction |
An instruction that returns a |
CompareGTInstruction |
An instruction that returns a |
CompareInstruction |
An instruction that compares two numeric operands. |
CompareLEInstruction |
An instruction that returns a |
CompareLTInstruction |
An instruction that returns a |
CompareNEInstruction |
An instruction that returns a |
CompleteObjectAddressInstruction |
An instruction that returns the address of the complete object that contains the subobject pointed to by its operand. |
ConditionalBranchInstruction |
An instruction that branches to one of two successor instructions based on the value of a Boolean operand. |
ConstantInstruction |
An instruction whose result is a constant value. |
ConstantValueInstruction |
An instruction whose result is a compile-time constant value. |
ConvertInstruction |
An instruction that converts the value of its operand to a value of a different type. |
ConvertToBaseInstruction |
An instruction that converts from the address of a derived class to the address of a base class. |
ConvertToDerivedInstruction |
An instruction that converts from the address of a base class to the address of a direct non-virtual derived class. |
ConvertToNonVirtualBaseInstruction |
An instruction that converts from the address of a derived class to the address of a direct non-virtual base class. |
ConvertToVirtualBaseInstruction |
An instruction that converts from the address of a derived class to the address of a virtual base class. |
CopyInstruction |
An instruction that returns a copy of its operand. |
CopyValueInstruction |
An instruction that returns a register result containing a copy of its register operand. |
DivInstruction |
An instruction that computes the quotient of two numeric operands. |
ElementsAddressInstruction |
An instruction that computes the address of the first element of a managed array. |
EnterFunctionInstruction |
An instruction representing the entry point to a function. |
ErrorInstruction |
An instruction that produces a well-defined but unknown result and has unknown side effects, including side effects that are not conservatively modeled in the SSA graph. |
ExitFunctionInstruction |
An instruction representing the exit point of a function. |
FieldAddressInstruction |
An instruction that computes the address of a non-static field of an object. |
FieldInstruction |
An instruction that refers to a field of a class, struct, or union. |
FloatConstantInstruction |
An instruction whose result is a constant value of floating-point type. |
FunctionAddressInstruction |
An instruction that returns the address of a function. |
FunctionInstruction |
An instruction that refers to a function. |
IndexedInstruction |
An instruction that refers to an argument of a |
IndirectMayWriteSideEffectInstruction |
An instruction representing the potential write of an indirect parameter within a function call. |
IndirectMustWriteSideEffectInstruction |
An instruction representing the write of an indirect parameter within a function call. |
IndirectReadSideEffectInstruction |
An instruction representing the read of an indirect parameter within a function call. |
InheritanceConversionInstruction |
An instruction that converts the address of an object to the address of a different subobject of the same object, without any type checking at runtime. |
InitializeDynamicAllocationInstruction |
An instruction representing the initial value of newly allocated memory, such as the result of a call to |
InitializeIndirectionInstruction |
An instruction that initializes the memory pointed to by a parameter of the enclosing function with the value of that memory on entry to the function. |
InitializeNonLocalInstruction |
An instruction that initializes all memory that existed before this function was called. |
InitializeParameterInstruction |
An instruction that initializes a parameter of the enclosing function with the value of the corresponding argument passed by the caller. |
InitializeThisInstruction |
An instruction that initializes the |
InlineAsmInstruction |
An instruction representing a GNU or MSVC inline assembly statement. |
Instruction |
A single instruction in the IR. |
IntegerConstantInstruction |
An instruction whose result is a constant value of integer or Boolean type. |
LoadInstruction |
An instruction that returns a register result containing a copy of its memory operand. |
LogicalNotInstruction |
An instruction that computes the logical complement of its operand. |
MulInstruction |
An instruction that computes the product of two numeric operands. |
NegateInstruction |
An instruction that negates a single numeric operand. |
NewObjInstruction |
An instruction that allocates a new object on the managed heap. |
NextVarArgInstruction |
An instruction that modifies a |
NoOpInstruction |
An instruction that has no effect. |
PhiInstruction |
An instruction representing the choice of one of multiple input values based on control flow. |
PointerAddInstruction |
An instruction that adds an integer offset to a pointer. |
PointerArithmeticInstruction |
An instruction that performs a binary arithmetic operation involving at least one pointer operand. |
PointerDiffInstruction |
An instruction that computes the difference between two pointers. |
PointerOffsetInstruction |
An instruction that adds or subtracts an integer offset from a pointer. |
PointerSubInstruction |
An instruction that subtracts an integer offset from a pointer. |
ReThrowInstruction |
An instruction that re-throws the current exception. |
ReadSideEffectInstruction |
An instruction representing a read side effect of a function call on a specific parameter. |
RelationalInstruction |
An instruction that does a relative comparison of two values, such as |
RemInstruction |
An instruction that computes the remainder of two integer operands. |
ReturnIndirectionInstruction |
An instruction that represents the use of the value pointed to by a parameter of the function after the function returns control to its caller. |
ReturnInstruction |
An instruction that returns control to the caller of the function. |
ReturnValueInstruction |
An instruction that returns control to the caller of the function, including a return value. |
ReturnVoidInstruction |
An instruction that returns control to the caller of the function, without returning a value. |
ShiftLeftInstruction |
An instruction that shifts its left operand to the left by the number of bits specified by its right operand. |
ShiftRightInstruction |
An instruction that shifts its left operand to the right by the number of bits specified by its right operand. |
SideEffectInstruction |
An instruction representing a side effect of a function call. |
SizedBufferMayWriteSideEffectInstruction |
An instruction representing the write of an indirect buffer parameter within a function call. |
SizedBufferMustWriteSideEffectInstruction |
An instruction representing the write of an indirect buffer parameter within a function call. The entire buffer is overwritten. |
SizedBufferReadSideEffectInstruction |
An instruction representing the read of an indirect buffer parameter within a function call. |
StoreInstruction |
An instruction that returns a memory result containing a copy of its register operand. |
StringConstantInstruction |
An instruction whose result is the address of a string literal. |
SubInstruction |
An instruction that computes the difference of two numeric operands. |
SwitchInstruction |
An instruction that branches to one of multiple successor instructions based on the value of an integer operand. |
ThrowInstruction |
An instruction that throws an exception. |
ThrowValueInstruction |
An instruction that throws a new exception. |
UnaryArithmeticInstruction |
An instruction whose result is computed by performing an arithmetic operation on a single numeric operand. |
UnaryBitwiseInstruction |
An instruction that performs a bitwise operation on a single integer operand. |
UnaryInstruction |
An instruction whose result is computed from a single operand. |
UninitializedInstruction |
An instruction that returns an uninitialized value. |
UnreachedInstruction |
An instruction representing unreachable code. |
UnsignedShiftRightInstruction |
An instruction that shifts its left operand to the right by the number of bits specified by its right operand. |
UnwindInstruction |
An instruction that exits the current function by propagating an exception. |
VarArgInstruction |
An instruction that returns the address of the argument currently pointed to by a |
VarArgsEndInstruction |
An instruction that cleans up a |
VarArgsStartInstruction |
An instruction that returns a |
VariableAddressInstruction |
An instruction that returns the address of a variable. |
VariableInstruction |
An instruction that refers to a variable. |
WriteSideEffectInstruction |
An instruction representing a write side effect of a function call on a specific parameter. |