]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Fix narrowing conversion in std::visit
authorJonathan Wakely <jwakely@redhat.com>
Thu, 20 May 2021 17:04:16 +0000 (18:04 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 1 Oct 2021 19:36:53 +0000 (20:36 +0100)
Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:

* include/std/variant (__do_visit): Use variant_npos instead of
literal -1 that requires a narrowing conversion.

libstdc++-v3/include/std/variant

index ddeefd9b35e0cbe503610dd17a1ab34a2b593fce..d50c6b7de1d439e0ac3c480b34238e8e068604ae 100644 (file)
@@ -1830,7 +1830,8 @@ namespace __variant
                  if constexpr (is_same_v<_Result_type, __variant_idx_cookie>
                                || is_same_v<_Result_type, __variant_cookie>)
                    {
-                     return __gen_vtable_impl<_Ma, index_sequence<-1>>::
+                     using _Npos = index_sequence<variant_npos>;
+                     return __gen_vtable_impl<_Ma, _Npos>::
                        __visit_invoke(std::forward<_Visitor>(__visitor),
                                       std::forward<_V0>(__v0));
                    }