]> gcc.gnu.org Git - gcc.git/commit
libstdc++: Ensure active union member is correctly set
authorNathaniel Shead <nathanieloshead@gmail.com>
Fri, 29 Sep 2023 09:30:41 +0000 (10:30 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Mon, 18 Mar 2024 11:04:35 +0000 (11:04 +0000)
commitbfe05fbb30594b9f1fdfba32f3fc7b317e5158e0
tree1d73abf6db3c14294df4ca0b5d989b1065ae0ede
parent96e7603bf662010d282d739841c133e0723a2d39
libstdc++: Ensure active union member is correctly set

This patch ensures that the union members for std::string and
std::variant are always properly set when a change occurs.

libstdc++-v3/ChangeLog:

* include/bits/basic_string.h: (basic_string(basic_string&&)):
Activate _M_local_buf when needed.
(basic_string(basic_string&&, const _Alloc&)): Likewise.
* include/bits/basic_string.tcc: (basic_string::swap): Likewise.
* include/std/variant: (__detail::__variant::__construct_n): New.
(__detail::__variant::__emplace): Use __construct_n.

Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com>
(cherry picked from commit 28adad7a32ed92a3c0906b38411c4ed686bbacc5)
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/basic_string.tcc
libstdc++-v3/include/std/variant
This page took 0.066263 seconds and 6 git commands to generate.