[Bug c/90081] stdint constant macros evaluating to wrong type
joseph at codesourcery dot com
gcc-bugzilla@gcc.gnu.org
Thu Apr 18 21:04:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90081
--- Comment #9 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
On Thu, 18 Apr 2019, harald at gigawatt dot nl wrote:
> > I think expanding the macro to its argument is clearly correct here,
> > including for UINT8_C, as the interpretation suggested in DR#456
> > regarding having an unsigned type in #if leads to the obvious absurdities
> > I described in reflector message 13320 (15 May 2014).
>
> That pre-dates the DR's proposed committee response, which is from Oct 2014.
I don't think the committee response paid any attention to the points I
raised; I think a supposition that compiler magic would be needed is
inaccurate as the proper reading of the changes in the C99 TCs is that
they specifically avoid needing such magic. In any case, it says nothing
about the types of these macros in #if. I agree with the conclusion that
there is no defect (as I think the common-sense reading of the standard
text is that the promoted type is the result of promoting outside #if,
just like the limits are the limits of the type outside #if - the limits
being otherwise would contradict express normative text about the values
of certain macros).
More information about the Gcc-bugs
mailing list