OpCodes.Add_Ovf OpCodes.Add_Ovf OpCodes.Add_Ovf OpCodes.Add_Ovf Field


Adds two integers, performs an overflow check, and pushes the result onto the evaluation stack.

public: static initonly System::Reflection::Emit::OpCode Add_Ovf;
public static readonly System.Reflection.Emit.OpCode Add_Ovf;
 staticval mutable Add_Ovf : System.Reflection.Emit.OpCode
Public Shared ReadOnly Add_Ovf As OpCode 

Field Value


The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

Format Assembly Format Description
D6 add.ovf Adds two signed integer values with an overflow check.

The stack transitional behavior, in sequential order, is:

  1. value1 is pushed onto the stack.

  2. value2 is pushed onto the stack.

  3. value2 and value1 are popped from the stack; value1 is added to value2 with a check for overflow.

  4. The result is pushed onto the stack.

OverflowException is thrown if the result is not represented in the result type.

You can perform this operation on signed integers. For floating-point values, use Add.

The acceptable operand types and their corresponding result data type are listed in the table below. If there is no entry for a particular type combination (for example, int32 and float; int32 and int64), it is an invalid Microsoft Intermediate Language (MSIL) instruction and generates an error.

operand value1 type value2 type result type
add int32 int32 int32
add int32 native int native int
add int32 & &
add int32 * *
add int64 int64 int64
add native int int32 native int
add native int native int native int
add native int & &
add native int * *
add F F F
add & int32 &
add & native int &
add * int32 *
add * native int *

The following Emit method overload can use the add.ovf opcode:

  • ILGenerator.Emit(OpCode)

Applies to