]> git.eshelyaron.com Git - emacs.git/commitdiff
Adjust intptr_t advice
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 14 Dec 2019 22:22:03 +0000 (14:22 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 14 Dec 2019 22:22:35 +0000 (14:22 -0800)
* doc/lispref/internals.texi (C Integer Types): Say to prefer
uintptr_t when pointer arithmetic might overflow intptr_t.

doc/lispref/internals.texi

index 8c55f4ea3730959f76be48b19fdb4f6ce3261a52..2a4e64dbb56adf215ec59f42646bca9b9ccb5dec 100644 (file)
@@ -2825,12 +2825,14 @@ POSIX requires support only for values in the range @minus{}1 ..@:
 @code{SSIZE_MAX}.
 
 @item
-Prefer @code{intptr_t} for internal representations of pointers, or
+Normally, prefer @code{intptr_t} for internal representations of pointers, or
 for integers bounded only by the number of objects that can exist at
 any given time or by the total number of bytes that can be allocated.
-Currently Emacs sometimes uses other types when @code{intptr_t} would
-be better; fixing this is lower priority, as the code works as-is on
-Emacs's current porting targets.
+However, prefer @code{uintptr_t} to represent pointer arithmetic that
+could cross page boundaries.  For example, on a machine with a 32-bit
+address space an array could cross the 0x7fffffff/0x80000000 boundary,
+which would cause an integer overflow when adding 1 to
+@code{(intptr_t) 0x7fffffff}.
 
 @item
 Prefer the Emacs-defined type @code{EMACS_INT} for representing values