2 minor issues on Windows

George Woltman woltman at alum.mit.edu
Wed Mar 16 03:57:33 CET 2022


Might you consider (I verified it works):

#if defined (_MSC_VER)
#pragma warning(push)
#pragma warning(disable: 4146) // unary minus operator applied to unsigned
type, result still unsigned
#endif
  *__gmp_rp = (- *__gmp_up) & GMP_NUMB_MASK;
#if defined (_MSC_VER)
#pragma warning(pop)
#endif

Your code, your call.  I understand the above does not enhance
readability.  The other alternative is to apply the pragma to the entire
gmp.h file.

Regards,
George Woltman


On Sun, Mar 13, 2022 at 5:24 AM Marco Bodrato <bodrato at mail.dm.unipi.it>
wrote:

> Ciao,
>
> Il 2022-03-13 00:06 Torbjörn Granlund ha scritto:
> > There is some sort of sick competition between certain compilers to
> > have
> >   the most warnings for valid C.  I don't think we should play their
> > game,
>
> > Incidantally, arithmetic on unsigned types is well-defined.  Unlike
> > that
> > of signed types.
>
> > int
> > foo (int a, int b)
> > {
> >   return a + b - 1;
> > }
> >
> > $ clank foo.c
> > warning: signed addition might overflow and yield undefined results
> > warning: signed subtraction might overflow and yield undefined results
>
> :-D
> You are right!
>
> Ĝis,
> m
>


More information about the gmp-bugs mailing list