> On 2 Oct 2019, at 00:43, Paul Eggert <[email protected]> wrote: > > However, we should avoid unsigned types that are 'unsigned' or wider, as they > have too many issues. I doubt whether there are practical uses of Bison with > more than INT_MAX states; but if there are, we should use ptrdiff_t to count > states, not int, because any application likely to exceed INT_MAX is also > pretty likely to exceed UINT_MAX. > > There is an area where Bison uses 'int' when it should use a wider type, > presumably intmax_t. This is for line and column numbers, which these come > from input files and can exceed INT_MAX in some practical cases. Fixing that > could be a subject of a different patch. > > There are no doubt other uses of 'int' in Bison for indexes should be changed > to ptrdiff_t, for things like stack depth where Bison should not impose > arbitrary limits. I think I should take a look at that next; this will > probably entail improvements to the patch I proposed.
For C++, I use typedef std::ptrdiff_t int_type; typedef std::size_t size_type; In C++ one uses fpos_t for file positions [1], in functions like std::fgetpos [2]. 1. https://en.cppreference.com/w/cpp/io/c 2. https://en.cppreference.com/w/cpp/io/c/fgetpos
