X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=README;h=ea528bd9b54f0a5e834ce4d842e306bf21d1ed4a;hb=9bb48fb977629b0184a12b081ba716b8185136d2;hp=25907e986f20c61cc1f54a89c68a3f7cf4f0b85d;hpb=d6a093438c4aa9043eacadd9de676cfff948db51;p=gnulib.git diff --git a/README b/README index 25907e986..ea528bd9b 100644 --- a/README +++ b/README @@ -130,9 +130,17 @@ as well. GNULib code makes the following additional assumptions: for all practical hosts with flat address spaces, but it is not always true for hosts with segmented address spaces. + * If an existing object has size S, and if T is sufficiently small + (e.g., 8 KiB), then S + T cannot overflow. Overflow in this case + would mean that the rest of your program fits into T bytes, which + can't happen in realistic flat-address-space hosts. + * Objects with all bits zero are treated as 0 or NULL. For example, memset (A, 0, sizeof A) initializes an array A of pointers to NULL. + * Adding zero to a null pointer does not change the pointer. + For example, 0 + (char *) NULL == (char *) NULL. + The above assumptions are not required by the C or POSIX standards but hold on all practical porting targets that we're familiar with. If you have a porting target where these assumptions are not true, we'd