On Mon, 28 Apr 2025, 21:37 François Dumont, <frs.dum...@gmail.com> wrote:
> Much better indeed, there is only the aligned_storage adaptation left. > > It will simplify my big versioned namespace patch to use cxx11 abi, very > nice ! > > libstdc++: [_GLIBCXX_INLINE_VERSION] Fix several tests failures > > Adapt testsuite v3_target_compile to strip version namespace from > compiler > output so that dg-error and dg-warning directives do not need to > consider it. > > Avoid a aligned_storage check as behavior has been fixed only when > using > gnu-versioned-namespace as it is an abi breaking change. > > libstdc++-v3/ChangeLog: > > * testsuite/lib/libstdc++.exp (v3_target_compile): Strip > version namespace > from compiler output. > * testsuite/20_util/aligned_storage/value.cc > [_GLIBCXX_INLINE_VERSION]: > Avoid align_msa check. > * testsuite/20_util/function/cons/70692.cc: Remove now > useless __8 namespace > pattern. > * testsuite/23_containers/map/48101_neg.cc: Likewise. > * testsuite/23_containers/multimap/48101_neg.cc: Likewise. > > Ok to commit ? And maybe backports ? > OK for trunk and 15. I think the aligned_storage part is not needed for gcc-14, right? The rest of ok to backport for gcc-14. Thanks! > François > > > On 28/04/2025 21:20, Jonathan Wakely wrote: > > On 28/04/25 19:11 +0200, François Dumont wrote: > >> Hi > >> > >> Pretty straightforward except for the aligned_storage one for which I > >> just avoid the check when gnu-versioned-namespace mode is being used. > >> > >> libstdc++: [_GLIBCXX_INLINE_VERSION] Fix several tests failures > >> > >> Several tests are failing when libstdc++ is configured with: > >> --enable-symvers=gnu-versioned-namespace > >> > >> Most of them are due to dg-error checks not considering the __8 > >> nested namespace. > >> > >> libstdc++-v3/ChangeLog: > >> > >> * testsuite/20_util/aligned_storage/value.cc > >> [_GLIBCXX_INLINE_VERSION]: > >> Avoid align_msa check. > >> * testsuite/20_util/function_objects/bind_back/111327.cc: > >> Adapt dg-error diagnostic > >> to __8 stdnested namespace. > >> * > >> testsuite/20_util/function_objects/bind_front/111327.cc: Likewise. > >> * > >> testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Likewise. > >> * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: > >> Likewise. > >> * testsuite/std/format/ranges/format_kind_neg.cc: Likewise. > >> > >> Let me know if you think it worth a backport. > >> > >> Tested under Linux x86_64 w/o gnu-versioned-namespace mode. > >> > >> Ok to commit ? > > > > Could you test this instead please? > > > > --- a/libstdc++-v3/testsuite/lib/libstdc++.exp > > +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp > > @@ -648,6 +648,10 @@ proc v3_target_compile { source dest type options > > } { > > set v3_additional_files {} > > > > set comp_output [target_compile $source $dest $type $options] > > + # Strip versioned namespace from the compiler output, > > + # so that dg-error and dg-warning patterns can ignore it: > > + regsub -all "std::__8::" $comp_output "std::" comp_output > > + > > if { $type == "executable" && $file_to_delete != "" } { > > file delete $file_to_delete > > if { [istarget *-*-darwin*] && [file exists > > $file_to_delete.dSYM] } { > > > > > > This should mean we never need to use "std::(__8)?::" again :-) > >