On 6/10/22 15:24, Anders Kaseorg wrote:
ptr_align is always called with a pointer to uninitialized memory, so it does not make sense for that pointer to be const.
I don't see why not. ptr_align does not modify the referenced storage so "void const *" is appropriate. If we changed the type to "void *" we'd unnecessarily limit ptr_align's applicability.
This change avoids -Wmaybe-uninitialized warnings from GCC 11.
I can't reproduce the problem with the latest coreutils commit 93e099e4c3b659b2e329f655fbdc73fdf594a66e on Savannah master on Ubuntu 22.04 LTS x86-64, I don't get warnings with either gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0 or with gcc-12 (Ubuntu 12-20220319-1ubuntu1) 12.0.1 20220319 (experimental) [master r12-7719-g8ca61ad148f]. I also don't see a problem on Fedora 36 x86-64 with gcc (GCC) 12.1.1 20220507 (Red Hat 12.1.1-1) . In all cases I configured and built with "./configure --enable-gcc-warnings; make".
Perhaps the problem (whatever it was) has already been fixed in coreutils. If not, I guess that the issue has something to do with the particular platform and options you configured with. If it's an older compiler like GCC 11.3.0 I wouldn't worry too much about it, as older GCCs are notorious for false alarms and not worth the trouble of pacifying.
Most likely the warnings are false positives (though I haven't checked this).