diff mbox series

[committed] libstdc++: Remove std::__unicode::__null_sentinel

Message ID 20240108161333.3785051-1-jwakely@redhat.com
State New
Headers show
Series [committed] libstdc++: Remove std::__unicode::__null_sentinel | expand

Commit Message

Jonathan Wakely Jan. 8, 2024, 4:13 p.m. UTC
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(-)
diff mbox series

Patch

diff --git a/libstdc++-v3/include/bits/unicode.h b/libstdc++-v3/include/bits/unicode.h
index 66f8399fdfb..e49498a0531 100644
--- a/libstdc++-v3/include/bits/unicode.h
+++ b/libstdc++-v3/include/bits/unicode.h
@@ -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>
diff --git a/libstdc++-v3/testsuite/17_intro/names.cc b/libstdc++-v3/testsuite/17_intro/names.cc
index 5e77e9f2ab0..53c5aff219d 100644
--- a/libstdc++-v3/testsuite/17_intro/names.cc
+++ b/libstdc++-v3/testsuite/17_intro/names.cc
@@ -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