[clang] [BitInt] Expose a _BitInt literal suffix in C++ (PR #86586)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 29 08:02:05 PDT 2024
================
@@ -1127,9 +1148,9 @@ NumericLiteralParser::NumericLiteralParser(StringRef TokSpelling,
// wb and WB are allowed, but a mixture of cases like Wb or wB is not. We
// explicitly do not support the suffix in C++ as an extension because a
// library-based UDL that resolves to a library type may be more
- // appropriate there.
- if (!LangOpts.CPlusPlus && ((s[0] == 'w' && s[1] == 'b') ||
- (s[0] == 'W' && s[1] == 'B'))) {
+ // appropriate there. The same rules apply for __wb/__WB.
+ if ((!LangOpts.CPlusPlus || PossibleBitInt) &&
+ ((s[0] == 'w' && s[1] == 'b') || (s[0] == 'W' && s[1] == 'B'))) {
----------------
Sirraide wrote:
In `Sema::ActOnNumericConstant()`:
> // NumericLiteralParser wants to overread by one character. Add padding to
// the buffer in case the token is copied to the buffer. If getSpelling()
// returns a StringRef to the memory buffer, it should have a null char at
// the EOF, so it is also safe.
https://github.com/llvm/llvm-project/pull/86586
More information about the cfe-commits
mailing list