Warning when compiling on NetBSD/sparc64

Niels Möller nisse at lysator.liu.se
Sat Nov 30 19:29:11 UTC 2013

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

> udiv_qr_3by2 uses add_ssaaaa which has some ">> 32" on sparc64.

So it must be that shift, then (or sub_ddmmss).

But I have difficulty spotting any 32-bit values. All involved variables
seems to be typed as mp_limb_t, and CNST_LIMB(0) includes an explicit
cast to mp_limb_t. And configure says that mp_limb_t is 8 bytes, as it
should be for a 64-bit build.

It seems CNST_LIMB is important, since in divrem_2.c there are two
almost identical invocations on udiv_qr_3by2, and the compiler complains
only on the second one. Which differs only in CNST_LIMB(0) passed
instead of n0.

But I hope the compiler (gcc, unknown version) doesn't complain on
expressions like

  ((unsigned long long) 0LL) >> 32

> A preprocessed version of divrem_2.c would help (the relevant line is
> likely to be huge, please insert line breaks in it and compile to see
> where the error is precisely).

That would definitely be helpful.


Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.

More information about the gmp-bugs mailing list