[PATCH] Move std::search into algobase.h

Jonathan Wakely jwakely.gcc@gmail.com
Thu Jun 1 21:57:30 GMT 2023


On Thu, 1 Jun 2023, 21:37 François Dumont via Libstdc++, <
libstdc++@gcc.gnu.org> wrote:

> It's of course not as easy as I thought.
>
> I would never have detected this problem on my system because I'm
> missing omp.h.
>
> I've implemented and added a:
>
> // { dg-require-effective-target omp }
>
> so that now those tests are UNRESOLVED rather than PASS.
>
> Now I've install OMP and try to rebuild lib to reproduce the failure.
>

You shouldn't need to install anything, just build gcc and don't configure
it with --disable-libgomp




> To be continued tomorrow...
>
> On 01/06/2023 14:05, Jonathan Wakely wrote:
> >
> >
> > On Thu, 1 Jun 2023 at 12:52, Rainer Orth <ro@cebitec.uni-bielefeld.de>
> > wrote:
> >
> >     Jonathan Wakely via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> >
> >     > On Wed, 31 May 2023 at 18:39, François Dumont via Libstdc++ <
> >     > libstdc++@gcc.gnu.org <mailto:libstdc%2B%2B@gcc.gnu.org>> wrote:
> >     >
> >     >> libstdc++: Reduce <functional> inclusion to <stl_algobase.h>
> >     >>
> >     >>
> >     >> Move the std::search definition from stl_algo.h to
> >     stl_algobase.h and use
> >     >> the later in <functional>.
> >     >>
> >     >> For consistency also move std::__parallel::search and
> >     associated helpers
> >     >> from
> >     >> <parallel/stl_algo.h> to <parallel/stl_algobase.h> so that
> >     >> std::__parallel::search
> >     >> is accessible along with std::search.
> >     >>
> >     >> libstdc++-v3/ChangeLog:
> >     >>
> >     >>              * include/bits/stl_algo.h
> >     >>              (std::__search, std::search(_FwdIt1, _FwdIt1,
> _FwdIt2,
> >     >> _FwdIt2, _BinPred)): Move...
> >     >>              * include/bits/stl_algobase.h: ...here.
> >     >>              * include/std/functional: Replace <stl_algo.h>
> >     include by
> >     >> <stl_algobase.h>.
> >     >>              * include/parallel/algo.h
> >     (std::__parallel::search<_FIt1,
> >     >> _FIt2, _BinaryPred>)
> >     >> (std::__parallel::__search_switch<_FIt1, _FIt2,
> >     >> _BinaryPred, _ItTag1, _ItTag2>):
> >     >>              Move...
> >     >>              * include/parallel/algobase.h: ...here.
> >     >>              * include/std/functional: Remove <bits/stl_algo.h>
> and
> >     >> <parallel/algorithm>
> >     >>              includes. Include <bits/stl_algobase.h>.
> >     >>
> >     >> Tested under Linux x86_64.
> >     >>
> >     >> Ok to commit ?
> >     >>
> >     >
> >     > OK
> >
> >     This seems to have caused
> >
> >     +FAIL: 17_intro/headers/c++2011/parallel_mode.cc (test for excess
> >     errors)
> >     +FAIL: 17_intro/headers/c++2014/parallel_mode.cc (test for excess
> >     errors)
> >
> >     on i386-pc-solaris2.11:
> >
> >
> > I think it affects all targets.
> >
> >
> >     Excess errors:
> >
>  /var/gcc/regression/master/11.4-gcc-gas/build/i386-pc-solaris2.11/libstdc++-v3/include/parallel/algobase.h:496:
> >     error: '__search_template' is not a member of '__gnu_parallel';
> >     did you mean '__find_template'?
> >
> >             Rainer
> >
> >     --
> >
>  -----------------------------------------------------------------------------
> >     Rainer Orth, Center for Biotechnology, Bielefeld University
> >
>


More information about the Libstdc++ mailing list