[mpich-discuss] MPICH 5.0.0 released: a warning

jdelia at intec.unl.edu.ar jdelia at intec.unl.edu.ar
Thu Feb 5 12:09:45 CST 2026


  Dear Zhou, Houi,

Thank you very much for your detailed analysis! It is indeed a bit strange. 
I obtained that result using the beta version 16.0.0 20251216 (experimental)
of gcc/gfortran. In any case with the last configuration, that I  
transcribed in
my previous email,  these warnings disappeared.

Thanks again and regards.
Jorge D'Elia.

"Zhou, Hui" <zhouh at anl.gov> escribió:

> It can be ignored.
>
> I am curious how the compiler arrive at that warning.  
> 18446744071562067968 and 18446744073709551615 in hex are
> 0xFFFFFFFF80000000 and 0xFFFFFFFFFFFFFFFF, if we cast to unsigned  
> int, they are 2147483648 - 4294967295, and
> if we cast to signed int, they are -2147483648 - -1. So The compiler  
> looked at the type of upid_len, which is an int, and
> decided it could have negative values, which will become in the  
> range of 0xFFFFFFFF80000000 and
>  0xFFFFFFFFFFFFFFFF and that exceeds maximum object size.
>
> So they are complaining an implicit cast from int to size_t in  
> memcpy. And they want us to add an explicit
> `(unsigned) upid_len` cast, which does nothing in improving the code  
> safety. In fact, it makes the code worse. Before, if we
> accidentally had negative values in int, which is quite common in  
> errors, the negative value will trigger an immediate error
>    in memcpy. With the cast to (unsigned), the negative values  
> suddenly become good value for memcpy and it will happily
>    corrupt the memory! It is a warning designed to be silenced and  
> force people to write bad code.
>
> How stupid is that?
>
> -- 
>   Hui
>
> -------------------------
>    FROM: jdelia--- via discuss <discuss at mpich.org>
> SENT: Wednesday, February 4, 2026 5:37 PM
> TO: MPICH DISCUSS at MPICH.ORG <discuss at mpich.org>
> CC: jdelia at intec.unl.edu.ar <jdelia at intec.unl.edu.ar>
> SUBJECT: [mpich-discuss] MPICH 5.0.0 released: a warning        
>
>        Hi there, Today I downloaded the [mpich-announce] MPICH  
> 5. 0. 0 released on a x86_64-pc-linux-gnu Linux machine with Fedora  
> 43. Although the building is fine, the following warning appears  
> during compilation: .. /src/mpid/ch4/src/ch4_proc. c: In
>     ZjQcmQRYFpfptBannerStart
>                This Message Is From an External Sender
>       This message came from outside your organization.
>
>       
>
>     ZjQcmQRYFpfptBannerEnd
>
>     Hi there,
>
> Today I downloaded the [mpich-announce] MPICH 5.0.0 released
> on a x86_64-pc-linux-gnu Linux machine with Fedora 43. 
>
> Although the building is fine, the following warning appears during  
> compilation:
>  
>     ../src/mpid/ch4/src/ch4_proc.c: In function ‘MPIDIU_upidhash_add’:
>     ../src/mpid/ch4/src/ch4_proc.c:336:5: warning: ‘memcpy’  
> specified bound between 18446744071562067968 and  
> 18446744073709551615 exceeds maximum object size 9223372036854775807  
> [-Wstringop-overflow=]
>       336 |     memcpy(t->upid, upid, upid_len);
>           |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> I'd like to know if it can be ignored, or if it would be better to  
> fix it (and
> how to do so). Thanks,
>
> Regards.
>
>     Jorge D'Elia.
>  



 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20260205/816b32d3/attachment.html>


More information about the discuss mailing list