shift-count-overflow possible issue on 64bit type

Jonathan Wakely jwakely.gcc@gmail.com
Mon Nov 25 09:30:00 GMT 2019


On Sat, 23 Nov 2019 at 13:56, Jonny Grant <jg@jguk.org> wrote:
>
> I see on my 64bit Ubuntu PC that size_t is 8 bytes, that is 64bits,
> however I see a warning:
>
> $ g++-8 -Wall -Wextra -o size_t size_t.cpp
> size_t.cpp: In function ‘int main()’:
> size_t.cpp:11:21: warning: left shift count >= width of type
> [-Wshift-count-overflow]
>       size_t big = 1<<40;
>                       ^~
>
>
>
> Same on Godbolt trunk.
> Is this an issue?

Why do you expect a different result for these?

A small = 1 << 40;
B big = 1 << 40;

In both cases the expression is 1 << 40, the type of A or B is irrelevant.



More information about the Gcc-help mailing list