Message ID | 20230201143831.BDA3A20423@pchp3.se.axis.com |
---|---|
State | New |
Headers | show |
Series | libstdc++ testsuite: Correct S0 in std/time/hh_mm_ss/1.cc | expand |
On Wed, 1 Feb 2023 at 14:38, Hans-Peter Nilsson via Libstdc++ <libstdc++@gcc.gnu.org> wrote: > > Tested cris-elf and native x86_64-pc-linux-gnu. > Ok to commit? OK, thanks.
On Wed, 1 Feb 2023 at 16:01, Jonathan Wakely wrote: > > On Wed, 1 Feb 2023 at 14:38, Hans-Peter Nilsson via Libstdc++ > <libstdc++@gcc.gnu.org> wrote: > > > > Tested cris-elf and native x86_64-pc-linux-gnu. > > Ok to commit? > > OK, thanks. We could add the [[no_unique_address]] attribute to the _M_ss member, so that it takes no space when it's an empty struct. That would save a byte in hh_mm_ss for cris-elf and targets like that, but as this type isn't meant to be used for storage, I don't think we should bother. People shouldn't be using this as a data member, just creating it on the stack and then discarding it.
> From: Jonathan Wakely <jwakely@redhat.com> > Date: Wed, 1 Feb 2023 18:19:09 +0100 > On Wed, 1 Feb 2023 at 16:01, Jonathan Wakely wrote: > > > > On Wed, 1 Feb 2023 at 14:38, Hans-Peter Nilsson via Libstdc++ > > <libstdc++@gcc.gnu.org> wrote: > > > > > > Tested cris-elf and native x86_64-pc-linux-gnu. > > > Ok to commit? > > > > OK, thanks. > > We could add the [[no_unique_address]] attribute to the _M_ss member, > so that it takes no space when it's an empty struct. > > That would save a byte in hh_mm_ss for cris-elf and targets like that, > but as this type isn't meant to be used for storage, I don't think we > should bother. People shouldn't be using this as a data member, just > creating it on the stack and then discarding it. > Agreed; no worries. Thanks for the review. brgds, H-P
diff --git a/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc b/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc index d97a9057f472..26a4555576c8 100644 --- a/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc +++ b/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc @@ -103,7 +103,7 @@ size() { using namespace std::chrono; - struct S0 { long long h; char m; char s; bool neg; }; + struct S0 { long long h; char m; char s; bool neg; struct { } empty; }; static_assert(sizeof(hh_mm_ss<seconds>) == sizeof(S0)); struct S1 { long long h; char m; char s; bool neg; char ss; }; static_assert(sizeof(hh_mm_ss<duration<int, std::centi>>) == sizeof(S1));