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

Reply via email to