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).