Warning when compiling on NetBSD/sparc64

Martin Husemann martin at duskware.de
Sat Nov 30 20:11:52 UTC 2013

On Sat, Nov 30, 2013 at 08:29:11PM +0100, Niels Möller wrote:
> But I hope the compiler (gcc, unknown version) doesn't complain on
> expressions like

I get the same warnings with gcc 4.5.3 and 4.8.2.

> > 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.

I modified the # NN line instructions to get proper offsets in the preprocessed
file the warning is in this asm statement:

       __asm__ ( "subcc %r4,%5,%1\n"
        "       subccc  %r6,%7,%%g0\n"
        "       subc    %r2,%3,%0" 
	 : "=r" ((r1)), "=&r" ((r0))
         : "rJ" ((r1)), "rI" ((d1)), "rJ" ((0)), "rI" ((d0)),
           "rJ" (((0)) >> 32), "rI" (((d0)) >> 32)
         : "cc");

which seems to be the sub_ddmmss macro.

And if you look carefully, you see: "rJ" (((0)) >> 32), i.e.: 0 >> 32,
which gcc warns about. Changing that to 0UL >> 32 makes the warning go away.


More information about the gmp-bugs mailing list