[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