[PATCH] libstdc++: Use aligned new for filesystem::path internals [PR122300]
Jonathan Wakely
jwakely@redhat.com
Fri Mar 6 10:00:39 GMT 2026
On Thu, 5 Mar 2026 at 19:47, Dimitar Dimitrov <dimitar@dinux.eu> wrote:
>
> On Wed, Mar 04, 2026 at 11:54:09AM +0000, Jonathan Wakely wrote:
> > As Bug 122300 shows, we have at least one target where the
> > static_assert added by r16-4422-g1b18a9e53960f3 fails. This patch
> > resurrects the original proposal for using aligned new that I posted in
> > https://gcc.gnu.org/pipermail/libstdc++/2025-October/063904.html
> >
> > Instead of just asserting that the memory from operator new will be
> > sufficiently aligned, check whether it will be and use aligned new if
> > needed. We don't just use aligned new unconditionally, because that can
> > add overhead on targets where malloc already meets the requirements.
> >
> > libstdc++-v3/ChangeLog:
> >
> > PR libstdc++/122300
> > * src/c++17/fs_path.cc (path::_List::_Impl): Remove
> > static_asserts.
> > (path::_List::_Impl::required_alignment)
> > (path::_List::_Impl::use_aligned_new): New static data members.
> > (path::_List::_Impl::create_unchecked): Check use_aligned_new
> > and use aligned new if needed.
> > (path::_List::_Impl::alloc_size): New static member function.
> > (path::_List::_Impl_deleter::operator): Check use_aligned_new
> > and use aligned delete if needed.
> > ---
> >
> > Tested x86_64-linux and bootstrapped pru-unknown-elf, confirming that it
> > fixes the failed static_assert during bootstrap.
> >
>
> Jonathan, thank you for this fix. I can again run the testsuite for
> full (hosted) libstdc++ on pru-unknown-elf. I do not see any
> regressions for pru with this patch:
Great, thanks for checking it. I've pushed the patch now.
>
> === libstdc++ Summary ===
>
> # of expected passes 2818
> # of unexpected failures 95
> # of expected failures 33
> # of unresolved testcases 1
> # of unsupported tests 7692
>
> === g++ Summary ===
>
> # of expected passes 218059
> # of unexpected failures 206
> # of unexpected successes 3
> # of expected failures 1469
> # of unresolved testcases 12
> # of unsupported tests 2778
>
> Regards,
> Dimitar
>
More information about the Libstdc++
mailing list