diff options
author | Ville Voutilainen <ville.voutilainen@gmail.com> | 2019-03-26 14:41:59 +0200 |
---|---|---|
committer | Ville Voutilainen <ville@gcc.gnu.org> | 2019-03-26 14:41:59 +0200 |
commit | 11767f80f0be06988b3b317ae0205ae9f79c190c (patch) | |
tree | a1de6e7725eb21873a857d7d8a8fe164ad648b1c | |
parent | 8be4d02ba9f6e6e309dee3d2fa599d806a0d1ef6 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/include/std/variant | 4 |
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() |