================ @@ -1103,7 +1103,15 @@ static void InitializePredefinedMacros(const TargetInfo &TI, assert(TI.getCharWidth() == 8 && "Only support 8-bit char so far"); Builder.defineMacro("__CHAR_BIT__", Twine(TI.getCharWidth())); - Builder.defineMacro("__BOOL_WIDTH__", Twine(TI.getBoolWidth())); + // The macro is specifying the number of bits in the value representation, + // not the number of bits in the object representation, which is what + // getBoolWidth() will return. For the bool/_Bool data type, there is only + // ever one bit in the value representation. See C23 6.2.6.2p2 for the rules + // in C. Note that [basic.fundamental]p10 allows an implementation-defined ---------------- AaronBallman wrote:
Good call, done https://github.com/llvm/llvm-project/pull/117364 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits