bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: checked integer arithmetic


From: Paul Eggert
Subject: Re: checked integer arithmetic
Date: Thu, 15 Dec 2016 23:35:40 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1

Bruno Haible wrote:

1) You're basically saying "let's use signed integer types for indices",
and you do that in the quotearg.c change.
Yes. This is not my invention; it's common in C programs generally to use int 
for indexes. Using ptrdiff_t for indexes is the preferred coding style in the C 
core of Emacs, where the maintainers don't want to use unsigned integers except 
for specialized uses like bitmasks. (ptrdiff_t is obviously a safer choice than 
int.)
2) The type __xalloc_count_type is sometimes signed, sometimes unsigned,
depending on platform (like 'char' and 'wchar_t').
True, though it is signed on all practical platforms that I know about. The 
unsigned alternative is in some sense merely a hypothetical one.
   It becomes one of the basic C types and should therefore deserve a
   name with wider scope.
I'm not sure I'd go that far. Emacs simply used ptrdiff_t for indexes, and this 
works well. ptrdiff_t works for all values that xalloc_oversized accepts. 
_xalloc_count_type exists merely to support efficient checking for oversized 
values even on weird platforms where SIZE_MAX < PTRDIFF_MAX, and this 
quite-specialized use doesn't need to leak out into applications -- at least, 
I've never felt the need for it in Emacs.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]