summaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/parallel
AgeCommit message (Collapse)Author
2025-02-14libstdc++: Fix more unqualified uses of make_pairJonathan Wakely
There are some unqualified calls to make_pair in Parallel Mode. Fix these by just using a qualified call, because it's simpler and I don't care about this code much. libstdc++-v3/ChangeLog: * include/parallel/algobase.h (__mismatch_switch): Qualify calls to make_pair to avoid ADL.
2025-01-02Update copyright years.Jakub Jelinek
2024-10-25non-gcc: Remove trailing whitespaceJakub Jelinek
I've tried to build stage3 with -Wleading-whitespace=blanks -Wtrailing-whitespace=blank -Wno-error=leading-whitespace=blanks -Wno-error=trailing-whitespace=blank added to STRICT_WARN and that expectably resulted in about 2744 unique trailing whitespace warnings and 124837 leading whitespace warnings when excluding *.md files (which obviously is in big part a generator issue). Others from that are generator related, I think those need to be solved later. The following patch just fixes up the easy case (trailing whitespace), which could be easily automated: for i in `find . -name \*.h -o -name \*.cc -o -name \*.c | xargs grep -l '[ ]$' | grep -v testsuite/`; do sed -i -e 's/[ ]*$//' $i; done I've excluded files which I knew are obviously generated or go FE. Is there anything else we'd want to avoid the changes? Due to patch size, I've split it between gcc/ part and rest (include/, libiberty/, libgcc/, libcpp/, libstdc++-v3/; this part). 2024-10-24 Jakub Jelinek <jakub@redhat.com> include/ * dyn-string.h: Remove trailing whitespace. * libiberty.h: Likewise. * xregex.h: Likewise. * splay-tree.h: Likewise. * partition.h: Likewise. * plugin-api.h: Likewise. * demangle.h: Likewise. * vtv-change-permission.h: Likewise. * fibheap.h: Likewise. * hsa_ext_image.h: Likewise. * hashtab.h: Likewise. * libcollector.h: Likewise. * sort.h: Likewise. * symcat.h: Likewise. * hsa_ext_amd.h: Likewise. libcpp/ * directives.cc: Remove trailing whitespace. * mkdeps.cc: Likewise. * line-map.cc: Likewise. * internal.h: Likewise. * files.cc: Likewise. * init.cc: Likewise. * makeucnid.cc: Likewise. * system.h: Likewise. * include/line-map.h: Likewise. * include/symtab.h: Likewise. * include/cpplib.h: Likewise. * expr.cc: Likewise. * charset.cc: Likewise. * macro.cc: Likewise. * errors.cc: Likewise. * lex.cc: Likewise. * traditional.cc: Likewise. libgcc/ * crtstuff.c: Remove trailing whitespace. * libgcov.h: Likewise. * config/alpha/crtfastmath.c: Likewise. * config/alpha/vms-gcc_shell_handler.c: Likewise. * config/alpha/vms-unwind.h: Likewise. * config/pa/linux-atomic.c: Likewise. * config/pa/linux-unwind.h: Likewise. * config/pa/quadlib.c: Likewise. * config/pa/fptr.c: Likewise. * config/s390/32/_fixsfdi.c: Likewise. * config/s390/32/_fixunssfdi.c: Likewise. * config/s390/32/_fixunsdfdi.c: Likewise. * config/c6x/pr-support.c: Likewise. * config/lm32/_udivsi3.c: Likewise. * config/lm32/libgcc_lm32.h: Likewise. * config/lm32/_udivmodsi4.c: Likewise. * config/lm32/_mulsi3.c: Likewise. * config/lm32/_modsi3.c: Likewise. * config/lm32/_umodsi3.c: Likewise. * config/lm32/_divsi3.c: Likewise. * config/darwin-crt3.c: Likewise. * config/msp430/mpy.c: Likewise. * config/ia64/tf-signs.c: Likewise. * config/ia64/fde-vms.c: Likewise. * config/ia64/unwind-ia64.c: Likewise. * config/ia64/vms-unwind.h: Likewise. * config/ia64/sfp-exceptions.c: Likewise. * config/ia64/quadlib.c: Likewise. * config/ia64/unwind-ia64.h: Likewise. * config/rl78/vregs.h: Likewise. * config/arm/bpabi.c: Likewise. * config/arm/unwind-arm.c: Likewise. * config/arm/pr-support.c: Likewise. * config/arm/linux-atomic.c: Likewise. * config/arm/bpabi-lib.h: Likewise. * config/frv/frvend.c: Likewise. * config/frv/cmovw.c: Likewise. * config/frv/frvbegin.c: Likewise. * config/frv/cmovd.c: Likewise. * config/frv/cmovh.c: Likewise. * config/aarch64/cpuinfo.c: Likewise. * config/i386/crtfastmath.c: Likewise. * config/i386/cygming-crtend.c: Likewise. * config/i386/32/tf-signs.c: Likewise. * config/i386/crtprec.c: Likewise. * config/i386/sfp-exceptions.c: Likewise. * config/i386/w32-unwind.h: Likewise. * config/m32r/initfini.c: Likewise. * config/sparc/crtfastmath.c: Likewise. * config/gcn/amdgcn_veclib.h: Likewise. * config/nios2/linux-atomic.c: Likewise. * config/nios2/linux-unwind.h: Likewise. * config/nios2/lib2-mul.c: Likewise. * config/nios2/lib2-nios2.h: Likewise. * config/xtensa/unwind-dw2-xtensa.c: Likewise. * config/rs6000/darwin-fallback.c: Likewise. * config/rs6000/ibm-ldouble.c: Likewise. * config/rs6000/sfp-machine.h: Likewise. * config/rs6000/darwin-asm.h: Likewise. * config/rs6000/darwin-crt2.c: Likewise. * config/rs6000/aix-unwind.h: Likewise. * config/rs6000/sfp-exceptions.c: Likewise. * config/gthr-vxworks.c: Likewise. * config/riscv/atomic.c: Likewise. * config/visium/memcpy.c: Likewise. * config/darwin-crt-tm.c: Likewise. * config/stormy16/lib2funcs.c: Likewise. * config/arc/ieee-754/divtab-arc-sf.c: Likewise. * config/arc/ieee-754/divtab-arc-df.c: Likewise. * config/arc/initfini.c: Likewise. * config/sol2/gmon.c: Likewise. * config/microblaze/divsi3_table.c: Likewise. * config/m68k/fpgnulib.c: Likewise. * libgcov-driver.c: Likewise. * unwind-dw2.c: Likewise. * fp-bit.c: Likewise. * dfp-bit.h: Likewise. * dfp-bit.c: Likewise. * libgcov-driver-system.c: Likewise. libgcc/config/libbid/ * _le_td.c: Remove trailing whitespace. * bid128_compare.c: Likewise. * bid_div_macros.h: Likewise. * bid64_to_bid128.c: Likewise. * bid64_to_uint32.c: Likewise. * bid128_to_uint64.c: Likewise. * bid64_div.c: Likewise. * bid128_round_integral.c: Likewise. * bid_binarydecimal.c: Likewise. * bid128_string.c: Likewise. * bid_flag_operations.c: Likewise. * bid128_to_int64.c: Likewise. * _mul_sd.c: Likewise. * bid64_mul.c: Likewise. * bid128_noncomp.c: Likewise. * _gt_dd.c: Likewise. * bid64_add.c: Likewise. * bid64_string.c: Likewise. * bid_from_int.c: Likewise. * bid128.c: Likewise. * _ge_dd.c: Likewise. * _ne_sd.c: Likewise. * _dd_to_td.c: Likewise. * _unord_sd.c: Likewise. * bid64_to_uint64.c: Likewise. * _gt_sd.c: Likewise. * _sd_to_td.c: Likewise. * _addsub_td.c: Likewise. * _ne_td.c: Likewise. * bid_dpd.c: Likewise. * bid128_add.c: Likewise. * bid128_next.c: Likewise. * _lt_sd.c: Likewise. * bid64_next.c: Likewise. * bid128_mul.c: Likewise. * _lt_dd.c: Likewise. * _ge_td.c: Likewise. * _unord_dd.c: Likewise. * bid64_sqrt.c: Likewise. * bid_sqrt_macros.h: Likewise. * bid64_fma.c: Likewise. * _sd_to_dd.c: Likewise. * bid_conf.h: Likewise. * bid64_noncomp.c: Likewise. * bid_gcc_intrinsics.h: Likewise. * _gt_td.c: Likewise. * _ge_sd.c: Likewise. * bid128_minmax.c: Likewise. * bid128_quantize.c: Likewise. * bid32_to_bid64.c: Likewise. * bid_round.c: Likewise. * _td_to_sd.c: Likewise. * bid_inline_add.h: Likewise. * bid128_fma.c: Likewise. * _eq_td.c: Likewise. * bid32_to_bid128.c: Likewise. * bid64_rem.c: Likewise. * bid128_2_str_tables.c: Likewise. * _mul_dd.c: Likewise. * _dd_to_sd.c: Likewise. * bid128_div.c: Likewise. * _lt_td.c: Likewise. * bid64_compare.c: Likewise. * bid64_to_int32.c: Likewise. * _unord_td.c: Likewise. * bid128_rem.c: Likewise. * bid_internal.h: Likewise. * bid64_to_int64.c: Likewise. * _eq_dd.c: Likewise. * _td_to_dd.c: Likewise. * bid128_to_int32.c: Likewise. * bid128_to_uint32.c: Likewise. * _ne_dd.c: Likewise. * bid64_quantize.c: Likewise. * _le_dd.c: Likewise. * bid64_round_integral.c: Likewise. * _le_sd.c: Likewise. * bid64_minmax.c: Likewise. libgcc/config/avr/libf7/ * f7-renames.h: Remove trailing whitespace. libstdc++-v3/ * include/debug/debug.h: Remove trailing whitespace. * include/parallel/base.h: Likewise. * include/parallel/types.h: Likewise. * include/parallel/settings.h: Likewise. * include/parallel/multiseq_selection.h: Likewise. * include/parallel/partition.h: Likewise. * include/parallel/random_number.h: Likewise. * include/parallel/find_selectors.h: Likewise. * include/parallel/partial_sum.h: Likewise. * include/parallel/list_partition.h: Likewise. * include/parallel/search.h: Likewise. * include/parallel/algorithmfwd.h: Likewise. * include/parallel/random_shuffle.h: Likewise. * include/parallel/multiway_mergesort.h: Likewise. * include/parallel/sort.h: Likewise. * include/parallel/algobase.h: Likewise. * include/parallel/numericfwd.h: Likewise. * include/parallel/multiway_merge.h: Likewise. * include/parallel/losertree.h: Likewise. * include/bits/basic_ios.h: Likewise. * include/bits/stringfwd.h: Likewise. * include/bits/ostream_insert.h: Likewise. * include/bits/stl_heap.h: Likewise. * include/bits/unordered_map.h: Likewise. * include/bits/hashtable_policy.h: Likewise. * include/bits/stl_iterator_base_funcs.h: Likewise. * include/bits/valarray_before.h: Likewise. * include/bits/regex.h: Likewise. * include/bits/postypes.h: Likewise. * include/bits/stl_iterator.h: Likewise. * include/bits/localefwd.h: Likewise. * include/bits/stl_algo.h: Likewise. * include/bits/ios_base.h: Likewise. * include/bits/stl_function.h: Likewise. * include/bits/basic_string.h: Likewise. * include/bits/hashtable.h: Likewise. * include/bits/valarray_after.h: Likewise. * include/bits/char_traits.h: Likewise. * include/bits/gslice.h: Likewise. * include/bits/locale_facets_nonio.h: Likewise. * include/bits/mask_array.h: Likewise. * include/bits/specfun.h: Likewise. * include/bits/random.h: Likewise. * include/bits/slice_array.h: Likewise. * include/bits/valarray_array.h: Likewise. * include/tr1/float.h: Likewise. * include/tr1/functional_hash.h: Likewise. * include/tr1/math.h: Likewise. * include/tr1/hashtable_policy.h: Likewise. * include/tr1/stdio.h: Likewise. * include/tr1/complex.h: Likewise. * include/tr1/stdbool.h: Likewise. * include/tr1/stdarg.h: Likewise. * include/tr1/inttypes.h: Likewise. * include/tr1/fenv.h: Likewise. * include/tr1/stdlib.h: Likewise. * include/tr1/wchar.h: Likewise. * include/tr1/tgmath.h: Likewise. * include/tr1/limits.h: Likewise. * include/tr1/wctype.h: Likewise. * include/tr1/stdint.h: Likewise. * include/tr1/ctype.h: Likewise. * include/tr1/random.h: Likewise. * include/tr1/shared_ptr.h: Likewise. * include/ext/mt_allocator.h: Likewise. * include/ext/sso_string_base.h: Likewise. * include/ext/debug_allocator.h: Likewise. * include/ext/vstring_fwd.h: Likewise. * include/ext/pointer.h: Likewise. * include/ext/pod_char_traits.h: Likewise. * include/ext/malloc_allocator.h: Likewise. * include/ext/vstring.h: Likewise. * include/ext/bitmap_allocator.h: Likewise. * include/ext/pool_allocator.h: Likewise. * include/ext/type_traits.h: Likewise. * include/ext/ropeimpl.h: Likewise. * include/ext/codecvt_specializations.h: Likewise. * include/ext/throw_allocator.h: Likewise. * include/ext/extptr_allocator.h: Likewise. * include/ext/atomicity.h: Likewise. * include/ext/concurrence.h: Likewise. * include/c_compatibility/wchar.h: Likewise. * include/c_compatibility/stdint.h: Likewise. * include/backward/hash_fun.h: Likewise. * include/backward/binders.h: Likewise. * include/backward/hashtable.h: Likewise. * include/backward/auto_ptr.h: Likewise. * libsupc++/eh_arm.cc: Likewise. * libsupc++/unwind-cxx.h: Likewise. * libsupc++/si_class_type_info.cc: Likewise. * libsupc++/vec.cc: Likewise. * libsupc++/class_type_info.cc: Likewise. * libsupc++/vmi_class_type_info.cc: Likewise. * libsupc++/guard_error.cc: Likewise. * libsupc++/bad_typeid.cc: Likewise. * libsupc++/eh_personality.cc: Likewise. * libsupc++/atexit_arm.cc: Likewise. * libsupc++/pmem_type_info.cc: Likewise. * libsupc++/vterminate.cc: Likewise. * libsupc++/eh_terminate.cc: Likewise. * libsupc++/bad_cast.cc: Likewise. * libsupc++/exception_ptr.h: Likewise. * libsupc++/eh_throw.cc: Likewise. * libsupc++/bad_alloc.cc: Likewise. * libsupc++/nested_exception.cc: Likewise. * libsupc++/pointer_type_info.cc: Likewise. * libsupc++/pbase_type_info.cc: Likewise. * libsupc++/bad_array_new.cc: Likewise. * libsupc++/pure.cc: Likewise. * libsupc++/eh_exception.cc: Likewise. * libsupc++/bad_array_length.cc: Likewise. * libsupc++/cxxabi.h: Likewise. * libsupc++/guard.cc: Likewise. * libsupc++/eh_catch.cc: Likewise. * libsupc++/cxxabi_forced.h: Likewise. * libsupc++/tinfo.h: Likewise.
2024-10-04libstdc++: Fix some Parallel Mode testsuite failuresJonathan Wakely
Some of these are due to no longer using #pragma GCC system_header in libstdc++ headers, some have been failing for longer and weren't noticed. libstdc++-v3/ChangeLog: * include/parallel/algobase.h (search): Use sequential algorithm for constant evaluation. * include/parallel/algorithmfwd.h (search): Add _GLIBCXX20_CONSTEXPR. * include/parallel/multiway_merge.h: Remove stray semi-colon. * include/parallel/multiseq_selection.h: Add diagnostic pragmas for -Wlong-long warning. * include/parallel/quicksort.h: Likewise. * include/parallel/random_number.h: Likewise. * include/parallel/settings.h: Likewise. * include/parallel/workstealing.h: Replace ++ and -- on volatile variables. * testsuite/17_intro/names.cc: Skip names defined by <tr1/random>. * testsuite/20_util/pair/dangling_ref.cc: Skip test if Parallel Mode is enabled. * testsuite/20_util/tuple/dangling_ref.cc: Likewise.
2024-10-03libstdc++: Fix -Wdeprecated-declarations warning for Parallel Mode [PR116944]Jonathan Wakely
The pragmas to disable warnings need to be moved before the first use of the deprecated classes. libstdc++-v3/ChangeLog: PR libstdc++/116944 * include/parallel/base.h: Move diagnostic pragmas earlier.
2024-09-25libstdc++: #ifdef out #pragma GCC system_headerJason Merrill
In r15-3714-gd3a7302ec5985a I added -Wsystem-headers to the libstdc++ build flags to help catch problems in the library. This patch takes a different approach, of disabling the #pragma system_header unless _GLIBCXX_SYSHDR is defined. As a result, the testsuites will treat them as non-system-headers to get better warning coverage during regression testing of both gcc and libstdc++, not just when building the library. My rationale for the #ifdef instead of just removing the #pragma is the three G++ tests that want to test libstdc++ system header behavior, so we need a way to select it. This doesn't affect installed libraries, as they get their system-header status from the lookup path. But testsuite_flags --build-includes gives -I directives rather than -isystem. This patch doesn't change the headers in config/ because I'm not compiling with most of them, so won't see any warnings that need fixing. Adjusting them could happen later, or we can not bother. libstdc++-v3/ChangeLog: * acinclude.m4 (WARN_FLAGS): Remove -Wsystem-headers. * configure: Regenerate. * include/bits/algorithmfwd.h: #ifdef out #pragma GCC system_header. * include/bits/atomic_base.h * include/bits/atomic_futex.h * include/bits/atomic_timed_wait.h * include/bits/atomic_wait.h * include/bits/basic_ios.h * include/bits/basic_string.h * include/bits/boost_concept_check.h * include/bits/char_traits.h * include/bits/charconv.h * include/bits/chrono.h * include/bits/chrono_io.h * include/bits/codecvt.h * include/bits/concept_check.h * include/bits/cpp_type_traits.h * include/bits/elements_of.h * include/bits/enable_special_members.h * include/bits/erase_if.h * include/bits/forward_list.h * include/bits/functional_hash.h * include/bits/gslice.h * include/bits/gslice_array.h * include/bits/hashtable.h * include/bits/indirect_array.h * include/bits/invoke.h * include/bits/ios_base.h * include/bits/iterator_concepts.h * include/bits/locale_classes.h * include/bits/locale_facets.h * include/bits/locale_facets_nonio.h * include/bits/localefwd.h * include/bits/mask_array.h * include/bits/max_size_type.h * include/bits/memory_resource.h * include/bits/memoryfwd.h * include/bits/move_only_function.h * include/bits/node_handle.h * include/bits/ostream_insert.h * include/bits/out_ptr.h * include/bits/parse_numbers.h * include/bits/postypes.h * include/bits/quoted_string.h * include/bits/range_access.h * include/bits/ranges_base.h * include/bits/refwrap.h * include/bits/sat_arith.h * include/bits/semaphore_base.h * include/bits/slice_array.h * include/bits/std_abs.h * include/bits/std_function.h * include/bits/std_mutex.h * include/bits/std_thread.h * include/bits/stl_iterator_base_funcs.h * include/bits/stl_iterator_base_types.h * include/bits/stl_tree.h * include/bits/stream_iterator.h * include/bits/streambuf_iterator.h * include/bits/stringfwd.h * include/bits/this_thread_sleep.h * include/bits/unique_lock.h * include/bits/uses_allocator_args.h * include/bits/utility.h * include/bits/valarray_after.h * include/bits/valarray_array.h * include/bits/valarray_before.h * include/bits/version.h * include/c_compatibility/fenv.h * include/c_compatibility/inttypes.h * include/c_compatibility/stdint.h * include/decimal/decimal.h * include/experimental/bits/net.h * include/experimental/bits/shared_ptr.h * include/ext/aligned_buffer.h * include/ext/alloc_traits.h * include/ext/atomicity.h * include/ext/concurrence.h * include/ext/numeric_traits.h * include/ext/pod_char_traits.h * include/ext/pointer.h * include/ext/stdio_filebuf.h * include/ext/stdio_sync_filebuf.h * include/ext/string_conversions.h * include/ext/type_traits.h * include/ext/vstring.h * include/ext/vstring_fwd.h * include/ext/vstring_util.h * include/parallel/algorithmfwd.h * include/parallel/numericfwd.h * include/tr1/functional_hash.h * include/tr1/hashtable.h * include/tr1/random.h * libsupc++/exception.h * libsupc++/hash_bytes.h * include/bits/basic_ios.tcc * include/bits/basic_string.tcc * include/bits/fstream.tcc * include/bits/istream.tcc * include/bits/locale_classes.tcc * include/bits/locale_facets.tcc * include/bits/locale_facets_nonio.tcc * include/bits/ostream.tcc * include/bits/sstream.tcc * include/bits/streambuf.tcc * include/bits/string_view.tcc * include/bits/version.tpl * include/experimental/bits/string_view.tcc * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp * include/ext/random.tcc * include/ext/vstring.tcc * include/tr2/bool_set.tcc * include/tr2/dynamic_bitset.tcc * include/bits/c++config * include/c/cassert * include/c/cctype * include/c/cerrno * include/c/cfloat * include/c/ciso646 * include/c/climits * include/c/clocale * include/c/cmath * include/c/csetjmp * include/c/csignal * include/c/cstdarg * include/c/cstddef * include/c/cstdio * include/c/cstdlib * include/c/cstring * include/c/ctime * include/c/cuchar * include/c/cwchar * include/c/cwctype * include/c_global/cassert * include/c_global/ccomplex * include/c_global/cctype * include/c_global/cerrno * include/c_global/cfenv * include/c_global/cfloat * include/c_global/cinttypes * include/c_global/ciso646 * include/c_global/climits * include/c_global/clocale * include/c_global/cmath * include/c_global/csetjmp * include/c_global/csignal * include/c_global/cstdalign * include/c_global/cstdarg * include/c_global/cstdbool * include/c_global/cstddef * include/c_global/cstdint * include/c_global/cstdio * include/c_global/cstdlib * include/c_global/cstring * include/c_global/ctgmath * include/c_global/ctime * include/c_global/cuchar * include/c_global/cwchar * include/c_global/cwctype * include/c_std/cassert * include/c_std/cctype * include/c_std/cerrno * include/c_std/cfloat * include/c_std/ciso646 * include/c_std/climits * include/c_std/clocale * include/c_std/cmath * include/c_std/csetjmp * include/c_std/csignal * include/c_std/cstdarg * include/c_std/cstddef * include/c_std/cstdio * include/c_std/cstdlib * include/c_std/cstring * include/c_std/ctime * include/c_std/cuchar * include/c_std/cwchar * include/c_std/cwctype * include/debug/array * include/debug/bitset * include/debug/deque * include/debug/forward_list * include/debug/list * include/debug/map * include/debug/set * include/debug/string * include/debug/unordered_map * include/debug/unordered_set * include/debug/vector * include/decimal/decimal * include/experimental/algorithm * include/experimental/any * include/experimental/array * include/experimental/buffer * include/experimental/chrono * include/experimental/contract * include/experimental/deque * include/experimental/executor * include/experimental/filesystem * include/experimental/forward_list * include/experimental/functional * include/experimental/internet * include/experimental/io_context * include/experimental/iterator * include/experimental/list * include/experimental/map * include/experimental/memory * include/experimental/memory_resource * include/experimental/net * include/experimental/netfwd * include/experimental/numeric * include/experimental/propagate_const * include/experimental/ratio * include/experimental/regex * include/experimental/scope * include/experimental/set * include/experimental/socket * include/experimental/string * include/experimental/string_view * include/experimental/synchronized_value * include/experimental/system_error * include/experimental/timer * include/experimental/tuple * include/experimental/type_traits * include/experimental/unordered_map * include/experimental/unordered_set * include/experimental/vector * include/ext/algorithm * include/ext/cmath * include/ext/functional * include/ext/iterator * include/ext/memory * include/ext/numeric * include/ext/random * include/ext/rb_tree * include/ext/rope * include/parallel/algorithm * include/std/algorithm * include/std/any * include/std/array * include/std/atomic * include/std/barrier * include/std/bit * include/std/bitset * include/std/charconv * include/std/chrono * include/std/codecvt * include/std/complex * include/std/concepts * include/std/condition_variable * include/std/coroutine * include/std/deque * include/std/execution * include/std/expected * include/std/filesystem * include/std/format * include/std/forward_list * include/std/fstream * include/std/functional * include/std/future * include/std/generator * include/std/iomanip * include/std/ios * include/std/iosfwd * include/std/iostream * include/std/istream * include/std/iterator * include/std/latch * include/std/limits * include/std/list * include/std/locale * include/std/map * include/std/memory * include/std/memory_resource * include/std/mutex * include/std/numbers * include/std/numeric * include/std/optional * include/std/ostream * include/std/print * include/std/queue * include/std/random * include/std/ranges * include/std/ratio * include/std/regex * include/std/scoped_allocator * include/std/semaphore * include/std/set * include/std/shared_mutex * include/std/span * include/std/spanstream * include/std/sstream * include/std/stack * include/std/stacktrace * include/std/stdexcept * include/std/streambuf * include/std/string * include/std/string_view * include/std/syncstream * include/std/system_error * include/std/text_encoding * include/std/thread * include/std/tuple * include/std/type_traits * include/std/typeindex * include/std/unordered_map * include/std/unordered_set * include/std/utility * include/std/valarray * include/std/variant * include/std/vector * include/std/version * include/tr1/array * include/tr1/cfenv * include/tr1/cinttypes * include/tr1/cmath * include/tr1/complex * include/tr1/cstdbool * include/tr1/cstdint * include/tr1/cstdio * include/tr1/cstdlib * include/tr1/cwchar * include/tr1/cwctype * include/tr1/functional * include/tr1/memory * include/tr1/random * include/tr1/regex * include/tr1/tuple * include/tr1/type_traits * include/tr1/unordered_map * include/tr1/unordered_set * include/tr1/utility * include/tr2/bool_set * include/tr2/dynamic_bitset * include/tr2/type_traits * libsupc++/atomic_lockfree_defines.h * libsupc++/compare * libsupc++/cxxabi.h * libsupc++/cxxabi_forced.h * libsupc++/cxxabi_init_exception.h * libsupc++/exception * libsupc++/initializer_list * libsupc++/new * libsupc++/typeinfo: Likewise. * testsuite/20_util/ratio/operations/ops_overflow_neg.cc * testsuite/23_containers/array/tuple_interface/get_neg.cc * testsuite/23_containers/vector/cons/destructible_debug_neg.cc * testsuite/24_iterators/operations/prev_neg.cc * testsuite/ext/type_traits/add_unsigned_floating_neg.cc * testsuite/ext/type_traits/add_unsigned_integer_neg.cc * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust line numbers. gcc/testsuite/ChangeLog * g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C * g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C * g++.dg/diagnostic/disable.C: #define _GLIBCXX_SYSHDR.
2024-09-25libstdc++: more #pragma diagnosticJason Merrill
The CI saw failures on 17_intro/headers/c++2011/parallel_mode.cc due to -Wdeprecated-declarations warnings in some parallel/ headers. libstdc++-v3/ChangeLog: * include/parallel/base.h: Suppress -Wdeprecated-declarations. * include/parallel/multiseq_selection.h: Likewise.
2024-01-03Update copyright years.Jakub Jelinek
2023-06-02libstdc++: Fix broken _GLIBCXX_PARALLEL modeFrançois Dumont
Add missing <parallel/search.h> include in <parallel/algobase.h>. libstdc++-v3/ChangeLog: * include/parallel/algobase.h: Include <parallel/search.h>.
2023-06-01libstdc++: Reduce <functional> inclusion to <stl_algobase.h>François Dumont
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/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm> includes. Include <bits/stl_algobase.h>.
2023-01-16Update copyright years.Jakub Jelinek
2022-01-03Update copyright years.Jakub Jelinek
2021-01-04Update copyright years.Jakub Jelinek
2020-11-04libstdc++: Define new C++17 std::search overload for Parallel Mode [PR 94971]Jonathan Wakely
libstdc++-v3/ChangeLog: PR libstdc++/94971 * include/bits/stl_algo.h (search(FIter, FIter, const Searcher): Adjust #if condition. * include/parallel/algo.h (search(FIter, FIter, const Searcher&): Define new overload for C++17.
2020-09-01libstdc++: Add compile-time checks to__glibcxx_assert [PR 71960]Jonathan Wakely
This change evaluates __glibcxx_assert checks unconditionally when a function is being constant evaluated (when std::is_constant_evaluated() is true). If the check fails, compilation will fail with an error. If the function isn't being constant evaluated, the normal runtime check will be done if enabled by _GLIBCXX_ASSERTIONS or _GLIBCXX_DEBUG, the same as before. Tangentially, the __glibcxx_assert and _GLIBCXX_PARALLEL_ASSERT macros are changed to expand to 'do { } while (false)' when assertions are disabled, instead of expanding to nothing. This avoids -Wempty-body warnings when a disabled assertion is used in an 'if' or 'else' statement e.g. if constexpr (/* precondition is testable */) __glibcxx_assert(precondition); a.C:9:27: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body] 9 | __glibcxx_assert(precondition); | ^ libstdc++-v3/ChangeLog: PR libstdc++/71960 * include/bits/c++config (__glibcxx_assert_impl): Remove do-while so that uses of the macro need to add it. (__glibcxx_assert): Rename macro for runtime assertions to __glibcxx_assert_2. (__glibcxx_assert_1): Define macro for constexpr assertions. (__glibcxx_assert): Define macro for constexpr and runtime assertions. * include/bits/range_access.h (ranges::advance): Remove redundant precondition checks during constant evaluation. * include/parallel/base.h (_GLIBCXX_PARALLEL_ASSERT): Always use do-while in macro expansion. * include/std/ranges (iota_view::iota_view(W, B)): Remove redundant braces.
2020-05-07libstdc++: Fix some C++20 algorithms to work in parallel modeJonathan Wakely
Some new algorithms need to use _GLIBCXX_STD_A to refer to the "normal" version of the algorithm, to workaround the namespace dance done for parallel mode. PR libstdc++/94971 (partial) * include/bits/ranges_algo.h (ranges::__sample_fn): Qualify std::sample using macro to work in parallel mode. (__sort_fn): Likewise for std::sort. (ranges::__nth_element_fn): Likewise for std::nth_element. * include/bits/stl_algobase.h (lexicographical_compare_three_way): Likewise for std::__min_cmp. * include/parallel/algobase.h (lexicographical_compare_three_way): Add to namespace std::__parallel.
2020-05-07libstdc++: Make relational operators work with const guarded iterators (PR ↵Jonathan Wakely
92472) This is a correct fix for the incorrect cppcheck suggestion to make these parameters const. In order to that, the dereference operators need to be const. The conversions to the underlying iterator can be const too. PR c/92472 * include/parallel/multiway_merge.h (_GuardedIterator::operator*) (_GuardedIterator::operator _RAIter, _UnguardedIterator::operator*) (_UnguardedIterator::operator _RAIter): Add const qualifier. (operator<(_GuardedIterator&, _GuardedIterator&) (operator<=(_GuardedIterator&, _GuardedIterator&) (operator<(_UnguardedIterator&, _UnguardedIterator&) (operator<=(_UnguardedIterator&, _UnguardedIterator&): Change parameters to const references.
2020-05-06Revert "Use const for template argument."Martin Liska
This reverts commit 03f9754665b889e0988d0392db1eb35e91b97693.
2020-05-05Use const for template argument.Martin Liska
libstdc++-v3/ChangeLog: 2020-02-04 Martin Liska <mliska@suse.cz> PR c/92472 * include/parallel/multiway_merge.h: Use const for _Compare template argument.
2020-01-01Update copyright years.Jakub Jelinek
From-SVN: r279813
2019-10-03Avoid reserved identifier in include/parallel/multiway_merge.hRainer Orth
* include/parallel/multiway_merge.h (_RAIter3): Replace _C by _Cp. From-SVN: r276515
2019-10-01Make some new algorithms work in parallel modeJonathan Wakely
* include/experimental/algorithm (experimental::sample): Qualify call to __sample correctly. * include/parallel/algo.h (sample, for_each_n): Add using-declarations for algorithms that don't have parallel implementations. From-SVN: r276432
2019-10-01Make some parallel mode algorithms usable in constexpr contextsJonathan Wakely
This makes the __parallel::equal and __parallel:lexicographical_compare algorithms usable in constant expressions, by dispatching to the sequential algorithm when calling during constant evaluation. * include/parallel/algobase.h (equal, lexicographical_compare): Add _GLIBCXX20_CONSTEXPR and dispatch to sequential algorithm when being constant evaluated. * include/parallel/algorithmfwd.h (equal, lexicographical_compare): Add _GLIBCXX20_CONSTEXPR. From-SVN: r276431
2019-10-01Fix non-reserved names in Parallel Mode headersJonathan Wakely
* include/parallel/algo.h: Replace non-reserved names. * include/parallel/multiway_merge.h: Likewise. * include/parallel/multiway_mergesort.h: Likewise. * include/parallel/numericfwd.h: Likewise. * testsuite/17_intro/names.cc: Add RAI to test macros. From-SVN: r276429
2019-09-30PR libstdc++/77936 remove unused variableJonathan Wakely
PR libstdc++/77936 * include/parallel/checkers.h (__is_sorted): Remove unused variable. From-SVN: r276297
2019-05-02Fix markup for Parallel Mode docsJonathan Wakely
* include/parallel/settings.h: Fix Doxygen markup. From-SVN: r270804
2019-01-03PR libstdc++/88607 replace or remove unnecessary UTF-8 charactersJonathan Wakely
There are a number of UTF-8 characters in comments which add no value and can be replaced with ASCII equivalents, or removed entirely for the section sign (U+00A7). PR libstdc++/88607 * include/bits/forward_list.h: Replace UTF-8 "ligature fi" character. * include/debug/forward_list: Likewise. * include/experimental/bits/shared_ptr.h: Remove UTF-8 "section sign" character. * include/experimental/chrono: Likewise. * include/experimental/functional: Likewise. * include/experimental/ratio: Likewise. * include/experimental/system_error: Likewise. * include/experimental/tuple: Likewise. * include/experimental/type_traits: Likewise. * include/parallel/workstealing.h: Replace UTF-8 "en dash" character. * include/parallel/multiseq_selection.h: Likewise. From-SVN: r267564
2019-01-01Update copyright years.Jakub Jelinek
From-SVN: r267494
2018-01-03Update copyright years.Jakub Jelinek
From-SVN: r256169
2017-01-01Update copyright years.Jakub Jelinek
From-SVN: r243994
2016-12-08PR71856 try to fix Parallel Mode assertions againJonathan Wakely
PR libstdc++/71856 * doc/xml/manual/using.xml: Document macro. * include/bits/c++config [_GLIBCXX_DEBUG || _GLIBCXX_PARALLEL] (__glibcxx_assert): Rename to __glibcxx_assert_impl. [_GLIBCXX_DEBUG] (__glibcxx_assert): Expand to __glibcxx_assert_impl. * include/parallel/base.h [_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Expand to __glibcxx_assert_impl. [!_GLIBCXX_PARALLEL_ASSERTIONS] (_GLIBCXX_PARALLEL_ASSERT): Define as empty. * testsuite/25_algorithms/headers/algorithm/ parallel_algorithm_assert2.cc: New test. From-SVN: r243434
2016-09-25algo.h: Generalize usage of std::__iterator_category.François Dumont
2016-09-25 François Dumont <fdumont@gcc.gnu.org> * include/parallel/algo.h: Generalize usage of std::__iterator_category. Adjust whitespaces. From-SVN: r240473
2016-07-13libstdc++/71856 Define _GLIBCXX_PARALLEL_ASSERTIONSJonathan Wakely
PR libstdc++/71856 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Define to 1 not empty. * include/parallel/compiletime_settings.h (_GLIBCXX_ASSERTIONS): Rename to _GLIBCXX_PARALLEL_ASSERTIONS and make default value depend on _GLIBCXX_ASSERTIONS. * include/parallel/balanced_quicksort.h: Rename _GLIBCXX_ASSERTIONS. Include <unistd.h> for sleep. * include/parallel/losertree.h: Rename _GLIBCXX_ASSERTIONS. * include/parallel/merge.h: Likewise. * include/parallel/multiway_merge.h: Likewise. * include/parallel/partition.h: Likewise. * include/parallel/queue.h: Likewise. * include/parallel/sort.h: Likewise. * testsuite/25_algorithms/headers/algorithm/ parallel_algorithm_assert.cc: New. From-SVN: r238307
2016-01-04Update copyright years.Jakub Jelinek
From-SVN: r232055
2015-01-05Update copyright years.Jakub Jelinek
From-SVN: r219188
2014-11-04numeric.h: Do not use default arguments in function template redeclarations ↵Jonathan Wakely
(definitions). * include/parallel/numeric.h: Do not use default arguments in function template redeclarations (definitions). From-SVN: r217069
2014-11-03algo.h: Do not use default arguments in function template redeclarations ↵Paolo Carlini
(definitions). 2014-11-03 Paolo Carlini <paolo.carlini@oracle.com> * include/parallel/algo.h: Do not use default arguments in function template redeclarations (definitions). From-SVN: r217050
2014-06-14user.cfg.in (INPUT): Add C++14 headers.Jonathan Wakely
* doc/doxygen/user.cfg.in (INPUT): Add C++14 headers. * include/bits/random.h (subtract_with_carry_engine): Fix Doxygen warnings. * include/bits/shared_ptr.h (shared_ptr): Likewise. * include/bits/unordered_map.h (unordered_map, unordered_multimap): Likewise. * include/bits/unordered_set.h (unordered_set, unordered_multiset): Likewise. * include/parallel/list_partition.h (__parallel::list_partition): Likewise. * include/std/iomanip (quoted): Likewise. * include/tr2/dynamic_bitset (dynamic_bitset): Likewise. From-SVN: r211670
2014-01-02Update copyright years in libstdc++-v3/Richard Sandiford
From-SVN: r206301
2013-10-01algobase.h (mismatch, equal): Provide parallel version for N3671 overloads.François Dumont
2013-10-01 François Dumont <fdumont@gcc.gnu.org> * include/parallel/algobase.h (mismatch, equal): Provide parallel version for N3671 overloads. From-SVN: r203082
2013-09-30algo.h (__find_switch): Use __binder2nd.Paolo Carlini
2013-09-30 Paolo Carlini <paolo.carlini@oracle.com> * include/parallel/algo.h (__find_switch): Use __binder2nd. From-SVN: r203040
2013-09-27predefined_ops.h: New.François Dumont
2013-09-27 François Dumont <fdumont@gcc.gnu.org> * include/bits/predefined_ops.h: New. * include/bits/stl_heap.h: Include <bits/predefined_ops.h>. (__is_heap_until, __push_heap, __adjust_heap, __pop_heap): Remove algo duplication. (__is_heap): Adapt. (__make_heap): New. (make_heap): Adapt to use latter. (__sort_heap): New. (sort_heap): Adapt to use latter. * include/bits/algobase.h: Include <bits/predefined_ops.h>. (__lexicographical_compare_impl): New. (__lexicographical_compare<false>::__lc): Adapt to use latter. (lexicographical_compare): Likewise. (__lower_bound): New. (lower_bound): Adapt to use latter. (equal): Use _GLIBCXX_STD_A::equal in N3671 overloads. (__mismatch): New. (mismatch): Use latter. * include/bits/algo.h: Include <bits/predefined_ops.h>. Remove <functional> include. (__move_median_first, __find, __find_if, __find_if_not): Remove algo duplication. (__find_end): Likewise. (__search_n): Rename into ... (__search_n_aux): ... this. (__search_n): Renew, use latter. (search_n): Use latter. (__search): New. (search): Use latter. (__find_end): Likewise. (__remove_copy_if): New. (remove_copy): Use latter. (__adjacent_find): New. (adjacent_find): Use latter. (__unique): New. (unique): Use latter. (__unique_copy): Remove algo duplication. (__stable_partition): New. (stable_partition): Use latter. (__heap_select): Remove algo duplication, use __make_heap. (__partial_sort): New, use latter. (partial_sort): Use latter. (__partial_sort_copy): New. (partial_sort_copy): Use latter. (__unguarded_linear_insert, __insertion_sort): Remove algo duplication. (__unguarded_insertion_sort, __final_insertion_sort): Likewise. (__unguarded_partition, __unguarded_partition_pivot): Likewise. (__partial_sort): New. (partial_sort): Use latter. (__sort): New. (sort): Use latter. (lower_bound): Use __lower_bound. (__upper_bound): New. (upper_bound): Use latter. (__equal_range): New. (equal_range): Use latter. (__move_merge_adaptive, __move_merge_adaptive_backward): Remove algo duplication. (__merge_adaptive, __merge_without_buffer): Likewise. (__inplace_merge): New. (inplace_merge): Use latter. (__move_merge, __merge_sort_loop, __chunk_insertion_sort): Remove algo duplication. (__merge_sort_with_buffer, __stable_sort_adaptive): Likewise. (__inplace_stable_sort): Likewise. (__include): New. (includes): Use latter. (__next_permutation): New. (next_permutation): Use latter. (__prev_permutation): New. (prev_permutation): Use latter. (__replace_copy_if): New. (replace_copy): Use latter. (__is_sorted_until): New. (is_sorted_unitl): Use latter. (__minmax_element): New. (minmax_element): Use latter. (__is_permutation): New. (is_permutation): Use latter. (__adjacent_find): New. (adjacent_find): Use latter. (__count_if): New. (count): Use latter. (count_if): Likewise. (__merge): New. (merge): Use latter. (__stable_sort): New. (stable_sort): Use latter. (__set_union): New. (set_union): Use latter. (__set_intersection): New. (set_intersection): Use latter. (__set_difference): New. (set_difference): Use latter. (__set_symmetric_difference): New. (set_symmetric_difference): Use latter. (__min_element): New. (min_element): Use latter. (__max_element): New. (max_element): Use latter. * include/Makefile.am: Add predefined_ops.h. * include/Makefile.in: Regenerate. * include/parallel/algobase.h (equal, mismatch): Add overloads from N3671. * testsuite/25_algorithms/is_permutation/vectorbool.cc: New. * testsuite/25_algorithms/adjacent_find/vectorbool.cc: Likewise. * testsuite/25_algorithms/find/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_if/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_first_of/vectorbool.cc: Likewise. * testsuite/25_algorithms/heap/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_end/vectorbool.cc: Likewise. * testsuite/25_algorithms/find_if_not/vectorbool.cc: Likewise. From-SVN: r202992
2013-03-08memoryfwd.h: New.Benjamin Kosnik
* include/bits/memoryfwd.h: New. Centralize forward declarations. * include/bits/algorithmfwd.h: Consistent comments. * include/bits/localefwd.h: Same. * include/ext/vstring_fwd.h: Same. * include/parallel/algorithmfwd.h: Same. * include/parallel/numericfwd.h: Same. * include/std/iosfwd: Same. * include/bits/alloc_traits.h: Include memoryfwd.h, remove allocator forward decl. * include/ext/alloc_traits.h: Remove allocator forward decl. * include/bits/stl_construct.h: Same. * include/bits/stringfwd.h: Include memoryfwd.h, remove allocator forward decl. Consistent comments. * doc/doxygen/user.cfg.in (TEMPLATE_RELATIONS): To NO. * include/Makefile.am (bits_headers): Add memoryfwd.h. * include/Makefile.in: Regenerate. * configure: Same. e enter the commit message for your changes. Lines starting From-SVN: r196559
2013-02-03Update copyright in libstdc++-v3.Richard Sandiford
From-SVN: r195701
2013-01-04Update Copyright years for files modified in 2011 and/or 2012.Jakub Jelinek
From-SVN: r194903
2012-11-10* many: Replace uses of __GXX_EXPERIMENTAL_CXX0X__ with __cplusplus.Jason Merrill
From-SVN: r193392
2012-10-09re PR libstdc++/54754 ([parallel mode] 'make check-parallel' only works on ↵Jonathan Wakely
x86-64) PR libstdc++/54754 * include/parallel/compatibility.h: Use atomic built-ins when they are lock-free. From-SVN: r192240
2012-09-29re PR libstdc++/34106 ([parallel mode] Atomic operations compatibility layer ↵Jonathan Wakely
needs cleanup) PR libstdc++/34106 * include/parallel/compatibility.h: Remove non-GCC code. From-SVN: r191856
2012-02-13PR libstdc++/51798 continuedRichard Henderson
PR libstdc++/51798 continued * include/bits/shared_ptr_base.h (_Sp_counted_base<_S_atomic>::_M_add_ref_lock): Hoist initial load outside compare_exchange loop. * include/tr1/shared_ptr.h: Same. * include/parallel/compatibility.h (__compare_and_swap_32): Use strong version of compare_exchange. (__compare_and_swap_64): Same. * include/profile/impl/profiler_state.h (__gnu_profile::__turn): Same. * libsupc++/guard.cc (__cxa_guard_acquire): Same. From-SVN: r184171
2012-02-10PR libstdc++/51798 continued.Benjamin Kosnik
2012-02-10 Benjamin Kosnik <bkoz@redhat.com> Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/51798 continued. * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Use __atomic_* builtins instead of __sync_* builtins for atomic functionality. * include/bits/shared_ptr_base.h: Same. * include/parallel/compatibility.h: Same. * include/profile/impl/profiler_state.h: Same. * include/tr1/shared_ptr.h: Same. * libsupc++/eh_ptr.cc: Same. * libsupc++/eh_throw.cc: Same. * libsupc++/eh_tm.cc: Same. * libsupc++/guard.cc: Same. * configure: Regenerated. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers. Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com> From-SVN: r184110