INT_MAX definition in gmp-impl.h conflicts with limits.h

Torbjorn Granlund tg at gmplib.org
Wed Nov 23 13:30:41 CET 2011


Marc Glisse <marc.glisse at inria.fr> writes:

  I was compiling gmp with clang (no issue except for the use of jb,pt
  in mpn/x86_64/mod_34lsub1.asm), and then I ran the testsuite and hit
  this issue: on linux, limits.h includes bits/xopen_lim.h which
  contains this code:
  
  #ifdef INT_MAX
  # if INT_MAX == 32767
  #  define WORD_BIT      16
  ...
  
  On the other hand, gmp-impl.h defines INT_MAX as something not
  preprocessor-friendly (with casts). The combination doesn't work. I
  can work around it by including tests.h before gmp-impl.h in the C++
  test files, but that doesn't feel right.
  
  Any opinion on the best way to go about this?

Why is only one compiler affected?  Does GMP somehow #include different
files for different compilers?

-- 
Torbjörn


More information about the gmp-bugs mailing list