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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |needs-bisection

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
I can now only see the correct

t.C: In member function 'auto ah::aq(long int)':
t.C:4:28: warning: argument 1 null where non-null expected [-Wnonnull]
    4 |     return __builtin_memcpy(0, &aq_ai, aj);
      |            ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
<built-in>: note: in a call to function 'void* __builtin_memcpy(void*, const
void*, long unsigned int)' declared 'nonnull'

not sure what changed it.  If I supply (void *)4 as destination I get

In member function 'auto ah::aq(long int)',
    inlined from 'ah& ah::bi(long int)' at t.C:17:9,
    inlined from 'ah& ah::bi(long int)' at t.C:11:5:
t.C:4:28: warning: 'void* __builtin_memcpy(void*, const void*, long unsigned
int)' specified bound between 9223372036854775808 and 18446744073709551615
exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
    4 |     return __builtin_memcpy((void *)4, &aq_ai, aj);
      |            ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In member function 'auto ah::aq(long int)',
    inlined from 'ah& ah::bi(long int)' at t.C:17:9,
    inlined from 'ah& ah::bi(long int)' at t.C:11:5,
    inlined from 'void ah::ba()' at t.C:7:17,
    inlined from 'void cn()' at t.C:24:15:
t.C:4:28: warning: 'void* __builtin_memcpy(void*, const void*, long unsigned
int)' specified bound between 9223372036854775808 and 18446744073709551615
exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
    4 |     return __builtin_memcpy((void *)4, &aq_ai, aj);
      |            ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~

that resembles what you are seeing I guess.

Reply via email to