Pádraig Brady <p...@draigbrady.com> writes: If I manually undef HAVE_GMP at the top of factor.c, then... $ make src/factor.o src/factor.c:154:0: error: macro "__GMP_GNUC_PREREQ" is not used [-Werror=unused-macros] It is used by some configs in longlong.h. It cannot be removed unless you fork longlong.h.
$ make CFLAGS=-m32 src/factor.o src/factor.c: In function 'factor_using_division': src/factor.c:755:33: error: variable 'lo' set but not used [-Werror=unused-but-set-variable] src/factor.c: In function 'mulredc': src/factor.c:945:28: error: variable 'tl' set but not used [-Werror=unused-but-set-variable] src/factor.c: In function 'mulredc2': src/factor.c:965:28: error: variable 'p0' set but not used [-Werror=unused-but-set-variable] src/factor.c: In function 'prime2_p': src/factor.c:1323:17: error: variable '_p0' set but not used [-Werror=unused-but-set-variable] src/factor.c: In function 'factor_using_pollard_rho2': src/factor.c:1579:11: error: variable '_p0' set but not used [-Werror=unused-but-set-variable] src/factor.c: In function 'factor_using_squfof': src/factor.c:2146:19: error: variable '_p0' set but not used [-Werror=unused-but-set-variable] The above point to redundant processing in umul_ppmm() (or at least our use of it). The code sometimes needs the upper half of a product, but umul_ppmm generates the full product as two halves. You could insert bogus dependencies on the low half, most likely making generated code worse. Or remove the bogus warning. src/factor.c: At top level: src/factor.c:151:0: error: macro "ASSERT" is not used [-Werror=unused-macros] src/factor.c:154:0: error: macro "__GMP_GNUC_PREREQ" is not used [-Werror=unused-macros] I fail to understand how anybody can regard an unused macro as an *error*. I'll clean up these tomorrow. Aren't this Draconian options ("ask the compiler to nag about everything it can, then treat nagging as errors in the code") self-defeating? You need to avoid natural ways of writing things, and instead go for contorted solutions. I spent a few hours trying to satisfy your demands in this area, and I am sure you maintainers have spent a lot of time on it. I for one prefer to spend my time on improving GNU, not define an artifical goal like this one, and work on satifying that. -- Torbjörn