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

François Dumont frs.dumont@gmail.com
Thu Jun 1 20:36:52 GMT 2023


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.

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