aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Voutilainen <ville.voutilainen@gmail.com>2019-03-26 14:41:59 +0200
committerVille Voutilainen <ville@gcc.gnu.org>2019-03-26 14:41:59 +0200
commit11767f80f0be06988b3b317ae0205ae9f79c190c (patch)
treea1de6e7725eb21873a857d7d8a8fe164ad648b1c
parent8be4d02ba9f6e6e309dee3d2fa599d806a0d1ef6 (diff)
downloadgcc-11767f80f0be06988b3b317ae0205ae9f79c190c.zip
gcc-11767f80f0be06988b3b317ae0205ae9f79c190c.tar.gz
gcc-11767f80f0be06988b3b317ae0205ae9f79c190c.tar.bz2
re PR libstdc++/89824 (Variant jump table reserves space for __variant_cookie twice)
PR libstdc++/89824 Fix based on a suggestion by Antony Polukhin. * include/std/variant (__gen_vtable): Don't reserve an additional table slot, _Multi_array already does that. From-SVN: r269941
-rw-r--r--libstdc++-v3/ChangeLog7
-rw-r--r--libstdc++-v3/include/std/variant4
2 files changed, 8 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 91d8dbc..6224260 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,12 @@
2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
+ PR libstdc++/89824
+ Fix based on a suggestion by Antony Polukhin.
+ * include/std/variant (__gen_vtable): Don't reserve an
+ additional table slot, _Multi_array already does that.
+
+2019-03-26 Ville Voutilainen <ville.voutilainen@gmail.com>
+
PR libstdc++/89816
Fix based on a suggestion by Antony Polukhin.
* include/std/variant (__variant_construct): Capture a pointer
diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index 0984e13..3631463 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -904,9 +904,7 @@ namespace __variant
using _Func_ptr = _Result_type (*)(_Visitor&&, _Variants...);
using _Array_type =
_Multi_array<_Func_ptr,
- (variant_size_v<remove_reference_t<_Variants>>
- + (is_same_v<_Result_type, __variant_cookie> ? 1 : 0))
- ...>;
+ variant_size_v<remove_reference_t<_Variants>>...>;
static constexpr _Array_type
_S_apply()