aaron.ballman added inline comments.
================
Comment at: clang/include/clang/Basic/IdentifierTable.h:124
- // 28 bits left in a 64-bit word.
+ // True if this identifier is a literal operator without whitespace.
+ unsigned IsLiteralOperatorWithoutWhitespace : 1;
----------------
I'm on the fence about adding "Leading" to the variable and function names as
well. I figure the "leading" makes it clear that we're talking about the
whitespace between the operator and the string literal and nowhere else.
================
Comment at: clang/include/clang/Basic/IdentifierTable.h:127
+
+ // 27 bits left in a 64-bit word.
----------------
I keep coming up with 25 bits (39 bits in use), so I think this got out of sync
at some point.
================
Comment at: clang/include/clang/Basic/IdentifierTable.h:385
+ /// Determine whether this is a literal operator without whitespace
+ bool isLiteralOperatorWithoutWhitespace() const {
----------------
================
Comment at: clang/include/clang/Basic/IdentifierTable.h:390
+
+ /// Set whether this is a literal operator without whitespace.
+ void setLiteralOperatorWithoutWhitespace(bool I) {
----------------
================
Comment at: clang/lib/Basic/IdentifierTable.cpp:289
+ // [over.literal] p8
+ if(isLiteralOperatorWithoutWhitespace())
+ return ReservedIdentifierStatus::NotReserved;
----------------
You should fix the clang-format issue.
================
Comment at: clang/test/Sema/reserved-identifier.cpp:84
+long double operator""_SacreBleue(long double) // no-warning
+{
----------------
Can you add comments about why there's no warning, as this behavior may be a
bit surprising to folks. Bonus points for the comment having a link back to the
standard.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104299/new/
https://reviews.llvm.org/D104299
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits