Intended types? It's a macro. Where is the type definition? It is inferred. Why not just make it implicit when the language allows for it?
On Wed, Mar 28, 2018 at 07:19:49PM +0200, Szabolcs Nagy wrote:
> * Jon Scobie <jon.scobie@callsign.com> [2018-03-28 14:33:23 +0100]:
> > Well, I definitely agree that instead of definitions like
> >
> > #define INT64_MIN (-1-0x7fffffffffffffff)
> >
> > we should have
> >
> > #define INT64_MIN (-1 - INT64_C(0x7fffffffffffffff))
> >
>
> why?
>
> "The macro INTN_C(value) shall expand to an integer constant expression corresponding to the type int_leastN_t"
>
> i dont think it is necessary or appropriate: the c rules
> already handles this portably: the const has the lowest
> rank 64bit signed int type, any additional complication
> can just get the type wrong.
Yes. If a tool is misinterpreting the expressions here, the tool
should be fixed. They all have the intended types already when
evaluated as C expressions. Making random edits to headers to make
buggy tools happy is not a direction I want to take.
Rich