[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 0/3] yacc: compute the best type for the state number
From: |
Hans Åberg |
Subject: |
Re: [PATCH 0/3] yacc: compute the best type for the state number |
Date: |
Wed, 2 Oct 2019 10:53:24 +0200 |
> On 2 Oct 2019, at 00:43, Paul Eggert <address@hidden> 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
- [PATCH 0/3] yacc: compute the best type for the state number, Paul Eggert, 2019/10/01
- Re: [PATCH 0/3] yacc: compute the best type for the state number, Hans Åberg, 2019/10/01
- Re: [PATCH 0/3] yacc: compute the best type for the state number, Kaz Kylheku, 2019/10/01
- Re: [PATCH 0/3] yacc: compute the best type for the state number, Akim Demaille, 2019/10/02
- Re: [PATCH 0/3] yacc: compute the best type for the state number, Kaz Kylheku, 2019/10/02
- Re: [PATCH 0/3] yacc: compute the best type for the state number, Paul Eggert, 2019/10/02