You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
.TH add_of 3
|
|
|
|
.SH NAME
|
|
|
|
add_of \- add two integers, check for arithmetic overflow
|
|
|
|
.SH SYNTAX
|
|
|
|
.B #include <libowfat/rangecheck.h>
|
|
|
|
|
|
|
|
int \fBadd_of\fP(dest,a,b);
|
|
|
|
.SH DESCRIPTION
|
|
|
|
If calculating a+b is possible without causing undefined behavior or an
|
|
|
|
arithmetic overflow in C, and the sum fits into the destination integer
|
|
|
|
type, do dest=a+b and return 0.
|
|
|
|
|
|
|
|
Otherwise, return 1.
|
|
|
|
|
|
|
|
Note: This is a macro, so dest does not have to be a pointer.
|
|
|
|
.SH BUGS
|
|
|
|
In the multiplication functions, a return value of 1 signals success and
|
|
|
|
0 failure. In add_of, sub_of and assign it's the other way around.
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
sub_of(3), assign(3), imult16(3), umult16(3), imult32(3), umult32(3),
|
|
|
|
imult64(3), umult64(3)
|