Re: shift-count-overflow possible issue on 64bit type

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

 



Many thanks

I've filed a ticket, hope the warning can be enhanced.


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92642

Jonny


On 23/11/2019 14:15, Ponnuvel Palaniyappan wrote:
The shift actually happens as int because the type of 1 is int, and the result is then assigned to size_t. You can instead use a wider type:

size_t big = 1UL<<41;

On Sat, 23 Nov 2019, 13:56 Jonny Grant, <jg@xxxxxxxx <mailto:jg@xxxxxxxx>> 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?

    Regards, Jonny

    https://godbolt.org/z/xeefQ8

    #include <stdio.h>
    size_t big = 1<<41;



    Please keep my email on any replies
    Jonny





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux