[clang] adds `__is_scoped_enum`, `__is_nullptr`, and `__is_referenceable`
authorChristopher Di Bella <cjdb@google.com>
Tue, 4 Oct 2022 16:44:39 +0000 (16:44 +0000)
committerChristopher Di Bella <cjdb@google.com>
Tue, 11 Oct 2022 00:13:58 +0000 (00:13 +0000)
commita089defa24dd4050192e1e8d7e704188d2214787
tree820f9f06b26b3c54960ddf77b2811b38cbac1800
parentbd3f48eefc11c2f1ef6eb034418697e24e9a965d
[clang] adds `__is_scoped_enum`, `__is_nullptr`, and `__is_referenceable`

... as builtins.

This is information that the compiler already has, and should be exposed
so that the library doesn't need to reimplement the exact same
functionality.

This was originally a part of D116280.

Depends on D135175.

Differential Revision: https://reviews.llvm.org/D135177
clang/docs/LanguageExtensions.rst
clang/include/clang/Basic/TokenKinds.def
clang/lib/Parse/ParseDeclCXX.cpp
clang/lib/Parse/ParseExpr.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/test/SemaCXX/type-traits.cpp