On Tue, Sep 24, 2019 at 02:08:53AM -0700, Denton Liu wrote: > When we ran `make hdr-check`, we got the following warning on Arch Linux: > > pack-bitmap.h:20:19: error: ‘BITMAP_IDX_SIGNATURE’ defined but not used [-Werror=unused-const-variable=] > 20 | static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'}; > | ^~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > > "Use" the BITMAP_IDX_SIGNATURE variable by making the size of > bitmap_disk_header.magic equal to the size of BITMAP_IDX_SIGNATURE. An > alternative was to simply add MAYBE_UNUSED. However, this design was > chosen because we eliminate the magic number (4) in the process. Yeah, I think this is a fine fix. Since it's needed in only a few files, the more usual fix would be to not define it in the header in the first place. Something like: extern const char BITMAP_IDX_SIGNATURE[4]; or whatever. But I think it's nice to keep it all together. > I'm tacking this patch on since this warning didn't show up until I > compiled it on gcc 9.1.0. Curiously, I _don't_ see the warning with gcc 9.2.1. By my reading of the manpage, this should be triggered by -Wunused-const-variable=2, but not by "1" (the difference being whether it triggers for stuff in header files). And only the latter is triggered by -Wall or -Wextra. But another weirdness is that hdr-check is directly compiling the header files. So I guess that fools it. But we don't pass any of the extra diagnostic options there. Have you put "-Wall" into your $(CC)? Perhaps a more realistic hdr-check would be: { echo '#include "git-compat-util.h"' echo '#include "$<"' } >$*.hcc $(QUIET_HDR)$(CC) $(ALL_CFLAGS) -o /dev/null -c -xc $*.hcc -Peff