OpCodes.Add_Ovf_Un OpCodes.Add_Ovf_Un OpCodes.Add_Ovf_Un OpCodes.Add_Ovf_Un Field


Adds two unsigned integer values, performs an overflow check, and pushes the result onto the evaluation stack.

public: static initonly System::Reflection::Emit::OpCode Add_Ovf_Un;
public static readonly System.Reflection.Emit.OpCode Add_Ovf_Un;
 staticval mutable Add_Ovf_Un : System.Reflection.Emit.OpCode
Public Shared ReadOnly Add_Ovf_Un 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
D7 add.ovf.un Adds two unsigned 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.un opcode:

  • ILGenerator.Emit(OpCode)

Applies to