preprocessor/8139: Bad new INT64_C macro
Neil Booth
neil@daikokuya.co.uk
Mon Oct 7 03:17:00 GMT 2002
Philippe RIBET wrote:-
> >What is the new definition? What is this macro?
>
> Old macro was:
>
> # if __WORDSIZE == 64
> # define INT64_C(c) c ## L
> # else
> # define INT64_C(c) c ## LL
> # endif
>
> New macro is:
> #define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))
But what is defining this macro? GCC, or your system? I don't
think it really matters, though.
Remember that with the new macro the token does not have L or LL
appended, and therefore has type int (before promotions) in an
arithmetic expression. This is what is causing the warning -
the integer is too big. You should probably add L or LL as
appropriate to your constants.
Neil.
More information about the Gcc-bugs
mailing list