Transactional, safe arithmetics for native C types. More...
#include <float.h>
#include <limits.h>
#include <picotm/compiler.h>
#include <stdlib.h>
#include "picotm-arithmetic.h"
Functions | |
static _Bool | add__Bool_tx (_Bool lhs, _Bool rhs) |
static char | add_char_tx (char lhs, char rhs) |
static double | add_double_tx (double lhs, double rhs) |
static float | add_float_tx (float lhs, float rhs) |
static int | add_int_tx (int lhs, int rhs) |
static long double | add_ldouble_tx (long double lhs, long double rhs) |
static long long | add_llong_tx (long long lhs, long long rhs) |
static long | add_long_tx (long lhs, long rhs) |
static signed char | add_schar_tx (signed char lhs, signed char rhs) |
static short | add_short_tx (short lhs, short rhs) |
static unsigned char | add_uchar_tx (unsigned char lhs, unsigned char rhs) |
static unsigned int | add_uint_tx (unsigned int lhs, unsigned int rhs) |
static unsigned long long | add_ullong_tx (unsigned long long lhs, unsigned long long rhs) |
static unsigned long | add_ulong_tx (unsigned long lhs, unsigned long rhs) |
static unsigned short | add_ushort_tx (unsigned short lhs, unsigned short rhs) |
static _Bool | div__Bool_tx (_Bool lhs, _Bool rhs) |
static char | div_char_tx (char lhs, char rhs) |
static double | div_double_tx (double lhs, double rhs) |
static float | div_float_tx (float lhs, float rhs) |
static int | div_int_tx (int lhs, int rhs) |
static long double | div_ldouble_tx (long double lhs, long double rhs) |
static long long | div_llong_tx (long long lhs, long long rhs) |
static long | div_long_tx (long lhs, long rhs) |
static signed char | div_schar_tx (signed char lhs, signed char rhs) |
static short | div_short_tx (short lhs, short rhs) |
static unsigned char | div_uchar_tx (unsigned char lhs, unsigned char rhs) |
static unsigned int | div_uint_tx (unsigned int lhs, unsigned int rhs) |
static unsigned long long | div_ullong_tx (unsigned long long lhs, unsigned long long rhs) |
static unsigned long | div_ulong_tx (unsigned long lhs, unsigned long rhs) |
static unsigned short | div_ushort_tx (unsigned short lhs, unsigned short rhs) |
static _Bool | mul__Bool_tx (_Bool lhs, _Bool rhs) |
static char | mul_char_tx (char lhs, char rhs) |
static double | mul_double_tx (double lhs, double rhs) |
static float | mul_float_tx (float lhs, float rhs) |
static int | mul_int_tx (int lhs, int rhs) |
static long double | mul_ldouble_tx (long double lhs, long double rhs) |
static long long | mul_llong_tx (long long lhs, long long rhs) |
static long | mul_long_tx (long lhs, long rhs) |
static signed char | mul_schar_tx (signed char lhs, signed char rhs) |
static short | mul_short_tx (short lhs, short rhs) |
static unsigned char | mul_uchar_tx (unsigned char lhs, unsigned char rhs) |
static unsigned int | mul_uint_tx (unsigned int lhs, unsigned int rhs) |
static unsigned long long | mul_ullong_tx (unsigned long long lhs, unsigned long long rhs) |
static unsigned long | mul_ulong_tx (unsigned long lhs, unsigned long rhs) |
static unsigned short | mul_ushort_tx (unsigned short lhs, unsigned short rhs) |
static _Bool | sub__Bool_tx (_Bool lhs, _Bool rhs) |
static char | sub_char_tx (char lhs, char rhs) |
static double | sub_double_tx (double lhs, double rhs) |
static float | sub_float_tx (float lhs, float rhs) |
static int | sub_int_tx (int lhs, int rhs) |
static long double | sub_ldouble_tx (long double lhs, long double rhs) |
static long long | sub_llong_tx (long long lhs, long long rhs) |
static long | sub_long_tx (long lhs, long rhs) |
static signed char | sub_schar_tx (signed char lhs, signed char rhs) |
static short | sub_short_tx (short lhs, short rhs) |
static unsigned char | sub_uchar_tx (unsigned char lhs, unsigned char rhs) |
static unsigned int | sub_uint_tx (unsigned int lhs, unsigned int rhs) |
static unsigned long long | sub_ullong_tx (unsigned long long lhs, unsigned long long rhs) |
static unsigned long | sub_ulong_tx (unsigned long lhs, unsigned long rhs) |
static unsigned short | sub_ushort_tx (unsigned short lhs, unsigned short rhs) |
|
inlinestatic |
Adds two values of type _Bool
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Adds two values of type char
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Adds two values of type double
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type float
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type int
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type long double
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type long long
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type long
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type signed char
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type short
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the addition's result underflows the type's range. |
|
inlinestatic |
Adds two values of type unsigned char
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Adds two values of type unsigned int
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Adds two values of type unsigned long long
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Adds two values of type unsigned long
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Adds two values of type unsigned short
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side addend. |
rhs | The right-hand-side addend. |
ERANGE | Reported to the transaction's recovery phase if the addition's result overflows the type's range. |
|
inlinestatic |
Divides a value of type _Bool
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Divides a value of type char
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Divides a value of type double
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type float
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type int
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type long double
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type long long
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type long
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type signed char
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type short
by another value of the same type. The function detects divisions by zero, overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
ERANGE | Reported to the transaction's recovery phase if the division's result overflows the type's range. |
|
inlinestatic |
Divides a value of type unsigned char
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Divides a value of type unsigned int
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Divides a value of type unsigned long long
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Divides a value of type unsigned long
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Divides a value of type unsigned short
by another value of the same type. The function detects divisions by zero, overflows and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side dividend. |
rhs | The right-hand-side divisor. |
EDOM | Reported to the transaction's recovery phase if the transaction tries to performed a division by 0. |
|
inlinestatic |
Multiplies two values of type _Bool
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Multiplies two values of type char
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Multiplies two values of type double
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type float
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type int
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type long double
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type long long
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type long
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type signed char
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type short
. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result underflows the type's range. |
|
inlinestatic |
Multiplies two values of type unsigned char
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Multiplies two values of type unsigned int
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Multiplies two values of type unsigned long long
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Multiplies two values of type unsigned long
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Multiplies two values of type unsigned short
. The function detects overflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side factor. |
rhs | The right-hand-side factor. |
ERANGE | Reported to the transaction's recovery phase if the multiplication's result overflows the type's range. |
|
inlinestatic |
Subtracts one value of type _Bool
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type char
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type double
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type float
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type int
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type long double
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type long long
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type long
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type signed char
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type short
from another value of the same type. The function detects overflows and underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result overflows the type's range. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type unsigned char
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type unsigned int
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type unsigned long long
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type unsigned long
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |
|
inlinestatic |
Subtracts one value of type unsigned short
from another value of the same type. The function detects underflows of the type's range and reports them as errno code to the transaction's recovery phase.
lhs | The left-hand-side minuend. |
rhs | The right-hand-side subtrahend. |
ERANGE | Reported to the transaction's recovery phase if the subtraction's result underflows the type's range. |