[committed] libstdc++: Remove std::__unicode::__null_sentinel
Checks
Commit Message
Tested x86_64-linux, pushed to trunk.
-- >8 --
The name __null_sentinel is defined as a macro by newlib, so we can't
use it as an identifier. That variable is not actually used by
libstdc++, it was added because P2728R6 proposes std::uc::null_sentinel.
Since we don't need it and it breaks bootstrap for newlib targets, just
remove it. A null sentinel can still be used by constructing a
_Null_sentinel_t object as needed, rather than having a named object of
that type predefined.
libstdc++-v3/ChangeLog:
* include/bits/unicode.h (__null_sentinel): Remove.
* testsuite/17_intro/names.cc: Add __null_sentinel.
---
libstdc++-v3/include/bits/unicode.h | 2 --
libstdc++-v3/testsuite/17_intro/names.cc | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
@@ -83,8 +83,6 @@ namespace __unicode
{ return *__it == iter_value_t<_It>{}; }
};
- inline constexpr _Null_sentinel_t __null_sentinel;
-
template<typename _FromFmt, typename _ToFmt,
input_iterator _Iter, sentinel_for<_Iter> _Sent = _Iter,
typename _ErrorHandler = _Repl>
@@ -140,6 +140,7 @@
// These clash with newlib so don't use them.
# define __lockable cannot be used as an identifier
+# define __null_sentinel cannot be used as an identifier
# define __packed cannot be used as an identifier
# define __unused cannot be used as an identifier
# define __used cannot be used as an identifier