https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119170
--- Comment #20 from Alejandro Colomar <alx at kernel dot org> --- (In reply to Kang-Che Sung from comment #19) > I personally don't like when there is an "oligopoly" on the compilers (C and > C++ should have a less centralized ecosystem than Java or Python), but this > is not my call. If proprietary compilers like MSVC also like this to be > standardized, then I have nothing to judge. I suspect they won't have much trouble with this. If TCC doesn't complain, I guess nobody will complain. > > The type is still _Bool in C23. bool is a predefined macro. > > I have a copy of N3220 working draft for reference. > > In section 6.4.1 "Keywords", "bool" "true" and "false" are listed as > keywords. > Section 6.4.4.6 "Predefined constants" describes the "true" and "false" > keywords. > Section 6.7.3 "Type specifiers" contains "bool". (It's no longer "_Bool".) > > I think I've made all my arguments. Except here I am going to correct your > knowledge about "bool" and "_Bool". in C23 "bool" is now a keyword and no > longer a macro. "_Bool" and <stdbool.h> are kept for backward compatibility. Hmmm, I stand corrected by Joseph and you. N3220 lists bool, true, and false as possible predefined macros in 6.10.10.1p2, but it doesn't require them to be macros. They are now all three both keywords and optional predefined macros. Thanks for the correction!