From fe69bee34c645589d3f2a489d7c67c349960410d Mon Sep 17 00:00:00 2001
From: Jonathan Wakely <jwakely@redhat.com>
Date: Tue, 24 Sep 2019 15:17:08 +0100
Subject: [PATCH] Remove check for impossible condition in
 std::variant::index()

The __index_type is only ever unsigned char or unsigned short, so not
the same type as size_t.

	* include/std/variant (variant::index()): Remove impossible case.

From-SVN: r276100
---
 libstdc++-v3/ChangeLog           | 2 ++
 libstdc++-v3/include/std/variant | 4 +---
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 64f8618fc45a..7daabe5b6010 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,7 @@
 2019-09-24  Jonathan Wakely  <jwakely@redhat.com>
 
+	* include/std/variant (variant::index()): Remove impossible case.
+
 	PR libstdc++/91871
 	* testsuite/util/testsuite_hooks.h
 	(conversion::iterator_to_const_iterator()): Do not return an invalid
diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index c0043243ec29..646ef416272f 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -1520,9 +1520,7 @@ namespace __variant
       constexpr size_t index() const noexcept
       {
 	using __index_type = typename _Base::__index_type;
-	if constexpr (is_same_v<__index_type, size_t>)
-	  return this->_M_index;
-	else if constexpr (__detail::__variant::__never_valueless<_Types...>())
+	if constexpr (__detail::__variant::__never_valueless<_Types...>())
 	  return this->_M_index;
 	else if constexpr (sizeof...(_Types) <= __index_type(-1) / 2)
 	  return make_signed_t<__index_type>(this->_M_index);
-- 
GitLab