From: GCC Administrator Date: Sat, 31 May 2025 00:19:06 +0000 (+0000) Subject: Daily bump. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c7df2b7d4380ade4caf8af4de8d3407d7d523a2f;p=thirdparty%2Fgcc.git Daily bump. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5f4d53c5068..3c37d272ccf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,147 @@ +2025-05-30 David Malcolm + + PR other/116792 + * diagnostic-format-html.cc (HTML_STYLE): Add ".highlight-a" and + ".highlight-b". + (html_builder::make_element_for_diagnostic): Handle begin_color + and end_color. + * diagnostic-show-locus.cc (to_html::to_html): Add "richloc" + param and use it to initialize m_richloc. + (to_html::colorize_text_for_range_idx): Drop. + (to_html::get_location_range_by_idx): New. + (to_html::get_highlight_color_for_range_idx): New. + (to_html::m_richloc): New field. + (print_html_span_start): Update for new param of to_html ctor. + (line_printer::m_was_in_range_p): New field. + (line_printer::m_last_range_idx): New field. + (layout_printer::print_source_line): Use set_in_range + and set_outside_range rather than colorization calls. + (layout_printer::set_in_range): New. + (layout_printer::set_outside_range): New. + (layout_printer::print_annotation_line): Use set_in_range + and set_outside_range rather than colorization calls. + (layout_printer::begin_label): Convert param from label + to state_idx. Add "is_label_text" param and use it to guard logic + for turning off colorization within paths. + (layout_printer::begin_label): Likewise. Push + for any highlight color. + (layout_printer::end_label): Likewise. + (layout_printer::end_label): Likewise, popping the + . + (layout_printer::print_any_labels): Convert begin/end_label + calls to pass in state_idx rather than label. Use begin/end_label + rather than colorization calls. + (layout_printer::layout_printer): Likewise. + (layout_printer::layout_printer): Initialize new fields. + (diagnostic_source_print_policy::print_as_html): Update for new + param of to_html ctor. + +2025-05-30 Andrew Pinski + + * passes.cc (execute_all_ipa_transforms): Fix typo in + commenet. + +2025-05-30 Joseph Myers + + * doc/standards.texi (C Language): Document library facilities + provided in terms of headers not declaring functions with external + linkage, not in terms of headers required of freestanding + implementations. + * doc/sourcebuild.texi (Subdirectories, Headers): Likewise. + * doc/trouble.texi (Standard Libraries): Likewise. + +2025-05-30 Pan Li + + * config/riscv/autovec.md (avg3_ceil): Add insn + expand to leverage vaadd with rnu directly. + +2025-05-30 Richard Biener + + PR tree-optimization/120341 + * tree-ssa-loop-im.cc (can_sm_ref_p): STRING_CSTs are readonly. + * tree-ssa-phiopt.cc (cond_store_replacement): Likewise. + +2025-05-30 Thomas Schwinge + Richard Biener + + PR middle-end/119835 + * tree-nrv.cc (pass_nrv::execute): Defuse 'RESULT_DECL' check. + +2025-05-30 David Malcolm + + * diagnostic-show-locus.cc (colorizer::m_current_named_color): New + field. + (colorizer::set_named_color): Use it to consolidate repeated calls + to the same color. + +2025-05-30 Richard Biener + + PR tree-optimization/120457 + * tree-vect-slp.cc (vect_lower_load_permutations): Implement + the same heuristics as load vectorization for single-element + interleaving that spans multiple vectors. + +2025-05-30 Richard Sandiford + + PR rtl-optimization/120347 + * rtlanal.cc (rtx_properties::try_to_add_src): Don't drop the + IN_MEM_LOAD and IN_MEM_STORE flags for autoinc registers. + * rtl-ssa/changes.cc (recog_level2): Check whether an + RTX_AUTOINCed register also appears outside of an address. + +2025-05-30 Julian Brown + Tobias Burnus + + * gimplify.cc (gimplify_omp_ctx): Add IMPLICIT_MAPPERS field. + (new_omp_context): Initialise IMPLICIT_MAPPERS hash map. + (delete_omp_context): Delete IMPLICIT_MAPPERS hash map. + (instantiate_mapper_info): New structs. + (remap_mapper_decl_1, omp_mapper_copy_decl, omp_instantiate_mapper, + omp_instantiate_implicit_mappers): New functions. + (gimplify_scan_omp_clauses): Handle MAPPER_BINDING clauses. + (gimplify_adjust_omp_clauses): Instantiate implicit declared mappers. + (gimplify_omp_declare_mapper): New function. + (gimplify_expr): Call above function. + * langhooks-def.h (lhd_omp_mapper_lookup, + lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): Add + prototypes. + (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define macros. + (LANG_HOOK_DECLS): Add above macros. + * langhooks.cc (lhd_omp_mapper_lookup, + lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): New + dummy functions. + * langhooks.h (lang_hooks_for_decls): Add OMP_FINISH_MAPPER_CLAUSES, + OMP_MAPPER_LOOKUP, OMP_EXTRACT_MAPPER_DIRECTIVE, OMP_MAP_ARRAY_SECTION + hooks. + * omp-general.h (omp_name_type): Add templatized struct, hash type + traits (for omp_name_type specialization). + (omp_mapper_list): Add struct. + * tree-core.h (omp_clause_code): Add OMP_CLAUSE__MAPPER_BINDING_. + * tree-pretty-print.cc (dump_omp_clause): Support GOMP_MAP_UNSET, + GOMP_MAP_PUSH_MAPPER_NAME, GOMP_MAP_POP_MAPPER_NAME artificial mapping + clauses. Support OMP_CLAUSE__MAPPER_BINDING_ and OMP_DECLARE_MAPPER. + * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add + OMP_CLAUSE__MAPPER_BINDING_. + * tree.def (OMP_DECLARE_MAPPER): New tree code. + * tree.h (OMP_DECLARE_MAPPER_ID, OMP_DECLARE_MAPPER_DECL, + OMP_DECLARE_MAPPER_CLAUSES): New defines. + (OMP_CLAUSE__MAPPER_BINDING__ID, OMP_CLAUSE__MAPPER_BINDING__DECL, + OMP_CLAUSE__MAPPER_BINDING__MAPPER): New defines. + +2025-05-30 Andrew Pinski + + * gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Return true + if something was done. + (scc_copy_prop::propagate): Return true if something was changed. + (pass_sccopy::execute): Return TODO_cleanup_cfg if a prop happened. + +2025-05-30 Kugan Vivekanandarajah + + * auto-profile.cc (function_instance::merge): New. + (autofdo_source_profile::read): Call merge. + 2025-05-29 Kugan Vivekanandarajah * config/aarch64/gcc-auto-profile: Make script executable. diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index ac274333576..e844ed6f555 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20250530 +20250531 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 8de6ae577d5..f5433722543 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,15 @@ +2025-05-30 Julian Brown + Tobias Burnus + + * c-common.h (c_omp_region_type): Add C_ORT_DECLARE_MAPPER and + C_ORT_OMP_DECLARE_MAPPER codes. + (omp_mapper_list): Add forward declaration. + (c_omp_find_nested_mappers, c_omp_instantiate_mappers): Add prototypes. + * c-omp.cc (c_omp_find_nested_mappers): New function. + (remap_mapper_decl_info): New struct. + (remap_mapper_decl_1, omp_instantiate_mapper, + c_omp_instantiate_mappers): New functions. + 2025-05-27 Alejandro Colomar Martin Uecker diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index f24c084914c..f36431bbf0d 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,45 @@ +2025-05-30 Qing Zhao + + PR c/120354 + * c-decl.cc (finish_struct): Or the results for TYPE_INCLUDES_FLEXARRAY. + +2025-05-30 Qing Zhao + + PR c/120353 + * c-decl.cc (finish_struct): Copy TYPE_INCLUDES_FLEXARRAY marking + to all the variant types of the current structure type. + +2025-05-30 Julian Brown + + * c-decl.cc (c_omp_mapper_id, c_omp_mapper_decl, c_omp_mapper_lookup, + c_omp_extract_mapper_directive, c_omp_map_array_section, + c_omp_scan_mapper_bindings_r, c_omp_scan_mapper_bindings): New + functions. + * c-objc-common.h (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define langhooks for C. + * c-parser.cc (c_parser_omp_clause_map): Add declare_mapper_p + parameter; handle mapper modifier. + (c_parser_omp_all_clauses): Update call to c_parser_omp_clause_map. + (c_parser_omp_target): Instantiate explicit mappers and record bindings + for implicit mappers. + (c_parser_omp_declare_mapper): Parse "declare mapper" directives. + (c_parser_omp_declare): Support "declare mapper". + (c_parser_omp_declare_reduction): Use inform not error_at. + * c-tree.h (c_omp_finish_mapper_clauses, c_omp_mapper_lookup, + c_omp_extract_mapper_directive, c_omp_map_array_section, + c_omp_mapper_id, c_omp_mapper_decl, c_omp_scan_mapper_bindings, + c_omp_instantiate_mappers): Add prototypes. + * c-typeck.cc (c_finish_omp_clauses): Handle GOMP_MAP_PUSH_MAPPER_NAME + and GOMP_MAP_POP_MAPPER_NAME. + (c_omp_finish_mapper_clauses): New function (langhook). + +2025-05-30 Martin Uecker + + PR c/120381 + * c-typeck.cc (composite_type_internal): Stop recursion for + swapped pairs. + 2025-05-29 Sandra Loosemore * c-parser.cc (c_parser_skip_to_closing_brace): New, copied from diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9e425ab6222..3f05db3c8f4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,64 @@ +2025-05-30 Jason Merrill + + PR c++/113563 + * lambda.cc (lambda_capture_field_type): Handle 'this' normally. + (build_capture_proxy): Special-case 'this' by-ref capture more. + (nonlambda_method_basetype): Look through xobj lambdas. + +2025-05-30 Julian Brown + Tobias Burnus + + * constexpr.cc (reduced_constant_expression_p): Add OMP_DECLARE_MAPPER + case. + (cxx_eval_constant_expression, potential_constant_expression_1): + Likewise. + * cp-gimplify.cc (cxx_omp_finish_mapper_clauses): New function. + * cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES, + LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE, + LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define langhooks. + * cp-tree.h (lang_decl_base): Add omp_declare_mapper_p field. Recount + spare bits comment. + (DECL_OMP_DECLARE_MAPPER_P): New macro. + (omp_mapper_id): Add prototype. + (cp_check_omp_declare_mapper): Add prototype. + (omp_instantiate_mappers): Add prototype. + (cxx_omp_finish_mapper_clauses): Add prototype. + (cxx_omp_mapper_lookup): Add prototype. + (cxx_omp_extract_mapper_directive): Add prototype. + (cxx_omp_map_array_section): Add prototype. + * decl.cc (check_initializer): Add OpenMP declare mapper support. + (cp_finish_decl): Set DECL_INITIAL for OpenMP declare mapper var decls + as appropriate. + * decl2.cc (mark_used): Instantiate OpenMP "declare mapper" magic var + decls. + * error.cc (dump_omp_declare_mapper): New function. + (dump_simple_decl): Use above. + * parser.cc (cp_parser_omp_clause_map): Add KIND parameter. Support + "mapper" modifier. + (cp_parser_omp_all_clauses): Add KIND argument to + cp_parser_omp_clause_map call. + (cp_parser_omp_target): Call omp_instantiate_mappers before + finish_omp_clauses. + (cp_parser_omp_declare_mapper): New function. + (cp_parser_omp_declare): Add "declare mapper" support. + * pt.cc (tsubst_decl): Adjust name of "declare mapper" magic var decls + once we know their type. + (tsubst_omp_clauses): Call omp_instantiate_mappers before + finish_omp_clauses, for target regions. + (tsubst_expr): Support OMP_DECLARE_MAPPER nodes. + (instantiate_decl): Instantiate initialiser (i.e definition) for OpenMP + declare mappers. + * semantics.cc (gimplify.h): Include. + (omp_mapper_id, omp_mapper_lookup, omp_extract_mapper_directive, + cxx_omp_map_array_section, cp_check_omp_declare_mapper): New functions. + (finish_omp_clauses): Delete GOMP_MAP_PUSH_MAPPER_NAME and + GOMP_MAP_POP_MAPPER_NAME artificial clauses. + (omp_target_walk_data): Add MAPPERS field. + (finish_omp_target_clauses_r): Scan for uses of struct/union/class type + variables. + (finish_omp_target_clauses): Create artificial mapper binding clauses + for used structs/unions/classes in offload region. + 2025-05-29 David Malcolm * error.cc (cxx_format_postprocessor::clone): Update to use diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 1218bb8d446..e740ecc0530 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,30 @@ +2025-05-30 Harald Anlauf + + PR fortran/102599 + PR fortran/114022 + * expr.cc (simplify_complex_array_inquiry_ref): Helper function for + simplification of inquiry references (%re/%im) of constant complex + arrays. + (find_inquiry_ref): Use it for handling %re/%im inquiry references + of complex arrays. + (scalarize_intrinsic_call): Fix frontend memleak. + * primary.cc (gfc_match_varspec): When the reference is NULL, the + previous simplification has succeeded in evaluating inquiry + references also of arrays. + +2025-05-30 Thomas Koenig + + PR fortran/120355 + * interface.cc (compare_parameter): If the global function has a + result clause, take typespec from there for the comparison against + the dummy argument. + +2025-05-30 Julian Brown + Tobias Burnus + + * parse.cc (tree.h, fold-const.h, tree-hash-traits.h): Add includes + (for additions to omp-general.h). + 2025-05-29 Jerry DeLisle PR fortran/120049 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 27ddc571f77..f0d91289e17 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,137 @@ +2025-05-30 David Malcolm + + PR other/116792 + * gcc.dg/format/diagnostic-ranges-html.py: New test script. + * gcc.dg/format/diagnostic-ranges.c: Add HTML generation to + options, and invoke the new script to check the HTML output. + +2025-05-30 Jason Merrill + + PR c++/120123 + * g++.dg/cpp23/explicit-obj-lambda18.C: New test. + +2025-05-30 Harald Anlauf + + PR fortran/102599 + PR fortran/114022 + * gfortran.dg/inquiry_type_ref_8.f90: New test. + +2025-05-30 Jason Merrill + + PR c++/113563 + * g++.dg/cpp23/explicit-obj-lambda17.C: New test. + +2025-05-30 Qing Zhao + + PR c/120354 + * gcc.dg/pr120354.c: New test. + +2025-05-30 Qing Zhao + + PR c/120353 + * gcc.dg/pr120353.c: New test. + +2025-05-30 Pan Li + + * gcc.target/riscv/rvv/autovec/avg.h: Add test helper macros. + * gcc.target/riscv/rvv/autovec/avg_data.h: Add test data for + avg_ceil. + * gcc.target/riscv/rvv/autovec/avg_ceil-1-i16-from-i32.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-1-i16-from-i64.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-1-i32-from-i64.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-1-i8-from-i16.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-1-i8-from-i32.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-1-i8-from-i64.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i16-from-i32.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i16-from-i64.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i32-from-i64.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i8-from-i16.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i8-from-i32.c: New test. + * gcc.target/riscv/rvv/autovec/avg_ceil-run-1-i8-from-i64.c: New test. + +2025-05-30 Pan Li + + * gcc.target/riscv/rvv/autovec/vls/avg-4.c: Update asm check + to vaadd. + * gcc.target/riscv/rvv/autovec/vls/avg-5.c: Ditto. + * gcc.target/riscv/rvv/autovec/vls/avg-6.c: Ditto. + * gcc.target/riscv/rvv/autovec/widen/vec-avg-rv32gcv.c: Ditto. + * gcc.target/riscv/rvv/autovec/widen/vec-avg-rv64gcv.c: Ditto. + +2025-05-30 Richard Biener + + PR tree-optimization/120341 + * gcc.dg/torture/pr120341-1.c: New testcase. + * gcc.dg/torture/pr120341-2.c: Likewise. + +2025-05-30 Jakub Jelinek + + PR target/120480 + * gcc.dg/pr120480.c: New test. + +2025-05-30 Julian Brown + + * c-c++-common/gomp/declare-mapper-3.c: Enable for C. + * c-c++-common/gomp/declare-mapper-4.c: Likewise. + * c-c++-common/gomp/declare-mapper-5.c: Likewise. + * c-c++-common/gomp/declare-mapper-6.c: Likewise. + * c-c++-common/gomp/declare-mapper-7.c: Likewise. + * c-c++-common/gomp/declare-mapper-8.c: Likewise. + * c-c++-common/gomp/declare-mapper-9.c: Likewise. + * c-c++-common/gomp/declare-mapper-10.c: Likewise. + * c-c++-common/gomp/declare-mapper-12.c: Likewise. + * c-c++-common/gomp/map-6.c: Update dg-error. + * gcc.dg/gomp/udr-3.c: Update for change to dg-note. + * c-c++-common/gomp/declare-mapper-11.c: New. + * gcc.dg/gomp/declare-mapper-10.c: New test. + * gcc.dg/gomp/declare-mapper-11.c: New test. + * gcc.dg/gomp/declare-mapper-13.c: New test. + +2025-05-30 Thomas Koenig + + PR fortran/120355 + * gfortran.dg/interface_62.f90: New test. + +2025-05-30 David Malcolm + + * g++.dg/diagnostic/bad-binary-ops-highlight-colors.C: Update + expected multiline output for quoted source and underlines to + reflect emitting color codes when changes happen, rather than + per character. + * g++.dg/diagnostic/long-short-colorization.C: Likewise. + * g++.dg/plugin/show-template-tree-color-labels.C: Likewise. + * gcc.dg/bad-binary-ops-highlight-colors.c: Likewise. + * gcc.dg/format/colors.c: Likewise. + +2025-05-30 Richard Sandiford + + PR rtl-optimization/120347 + * gcc.dg/torture/pr120347.c: New test. + +2025-05-30 Julian Brown + Tobias Burnus + + * c-c++-common/gomp/map-6.c: Update error scan output. + * c-c++-common/gomp/declare-mapper-3.c: New test (only enabled for C++ + for now). + * c-c++-common/gomp/declare-mapper-4.c: Likewise. + * c-c++-common/gomp/declare-mapper-5.c: Likewise. + * c-c++-common/gomp/declare-mapper-6.c: Likewise. + * c-c++-common/gomp/declare-mapper-7.c: Likewise. + * c-c++-common/gomp/declare-mapper-8.c: Likewise. + * c-c++-common/gomp/declare-mapper-9.c: Likewise. + * c-c++-common/gomp/declare-mapper-10.c: Likewise. + * c-c++-common/gomp/declare-mapper-12.c: Likewise. + * g++.dg/gomp/declare-mapper-1.C: New test. + * g++.dg/gomp/declare-mapper-2.C: New test. + * g++.dg/gomp/declare-mapper-3.C: New test. + +2025-05-30 Martin Uecker + + PR c/120381 + * gcc.dg/pr120381.c: New test. + * gcc.dg/gnu23-tag-composite-6.c: New test. + 2025-05-29 Kugan Vivekanandarajah * lib/target-supports.exp: Enable autofdo tests for aarch64. diff --git a/include/ChangeLog b/include/ChangeLog index 310a5d5d43c..51107161325 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2025-05-30 Julian Brown + Tobias Burnus + + * gomp-constants.h (gomp_map_kind): Add GOMP_MAP_UNSET, + GOMP_MAP_PUSH_MAPPER_NAME, GOMP_MAP_POP_MAPPER_NAME artificial mapping + clause types. + 2025-05-14 Andreas Schwab * libiberty.h (mkstemps): Remove duplicate. diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index fd9d59e2be0..78bbf263795 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,129 @@ +2025-05-30 Thomas Schwinge + + * testsuite/libgomp.c++/target-std__valarray-1.C: New. + * testsuite/libgomp.c++/target-std__valarray-1.output: Likewise. + +2025-05-30 Thomas Schwinge + + * testsuite/libgomp.c++/target-std__array-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__array-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__bitset-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__bitset-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__deque-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__deque-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__forward_list-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__forward_list-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__list-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__list-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__map-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__map-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__multimap-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__multimap-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__multiset-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__multiset-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__set-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__set-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__span-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__span-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__valarray-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__valarray-concurrent.C: Adjust. + * testsuite/libgomp.c++/target-std__vector-concurrent-usm.C: New. + * testsuite/libgomp.c++/target-std__vector-concurrent.C: Adjust. + +2025-05-30 Kwok Cheung Yeung + Thomas Schwinge + + * testsuite/libgomp.c++/target-std__array-concurrent.C: New. + * testsuite/libgomp.c++/target-std__bitset-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__deque-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__flat_map-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__flat_multimap-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__flat_multiset-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__flat_set-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__forward_list-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__list-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__map-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__multimap-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__multiset-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__set-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__span-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__unordered_map-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__unordered_multimap-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__unordered_multiset-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__unordered_set-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__valarray-concurrent.C: Likewise. + * testsuite/libgomp.c++/target-std__vector-concurrent.C: Likewise. + +2025-05-30 Kwok Cheung Yeung + + * testsuite/libgomp.c++/target-std__cmath.C: New. + * testsuite/libgomp.c++/target-std__complex.C: Likewise. + * testsuite/libgomp.c++/target-std__numbers.C: Likewise. + +2025-05-30 Waffl3x + Thomas Schwinge + + * testsuite/libgomp.c++/target-flex-10.C: New test. + * testsuite/libgomp.c++/target-flex-100.C: New test. + * testsuite/libgomp.c++/target-flex-101.C: New test. + * testsuite/libgomp.c++/target-flex-11.C: New test. + * testsuite/libgomp.c++/target-flex-12.C: New test. + * testsuite/libgomp.c++/target-flex-2000.C: New test. + * testsuite/libgomp.c++/target-flex-2001.C: New test. + * testsuite/libgomp.c++/target-flex-2002.C: New test. + * testsuite/libgomp.c++/target-flex-2003.C: New test. + * testsuite/libgomp.c++/target-flex-30.C: New test. + * testsuite/libgomp.c++/target-flex-300.C: New test. + * testsuite/libgomp.c++/target-flex-31.C: New test. + * testsuite/libgomp.c++/target-flex-32.C: New test. + * testsuite/libgomp.c++/target-flex-33.C: New test. + * testsuite/libgomp.c++/target-flex-41.C: New test. + * testsuite/libgomp.c++/target-flex-60.C: New test. + * testsuite/libgomp.c++/target-flex-61.C: New test. + * testsuite/libgomp.c++/target-flex-62.C: New test. + * testsuite/libgomp.c++/target-flex-70.C: New test. + * testsuite/libgomp.c++/target-flex-80.C: New test. + * testsuite/libgomp.c++/target-flex-81.C: New test. + * testsuite/libgomp.c++/target-flex-90.C: New test. + * testsuite/libgomp.c++/target-flex-common.h: New test. + +2025-05-30 Thomas Schwinge + Richard Biener + + PR middle-end/119835 + * testsuite/libgomp.oacc-c-c++-common/abi-struct-1.c: + '#pragma GCC optimize "-fno-inline"'. + * testsuite/libgomp.c-c++-common/target-abi-struct-1.c: New. + * testsuite/libgomp.c-c++-common/target-abi-struct-1-O0.c: Adjust. + +2025-05-30 Julian Brown + + * testsuite/libgomp.c-c++-common/declare-mapper-9.c: Enable for C. + * testsuite/libgomp.c-c++-common/declare-mapper-10.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-11.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-12.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-13.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-14.c: Likewise. + +2025-05-30 Julian Brown + Tobias Burnus + + * testsuite/libgomp.c++/declare-mapper-1.C: New test. + * testsuite/libgomp.c++/declare-mapper-2.C: New test. + * testsuite/libgomp.c++/declare-mapper-3.C: New test. + * testsuite/libgomp.c++/declare-mapper-4.C: New test. + * testsuite/libgomp.c++/declare-mapper-5.C: New test. + * testsuite/libgomp.c++/declare-mapper-6.C: New test. + * testsuite/libgomp.c++/declare-mapper-7.C: New test. + * testsuite/libgomp.c++/declare-mapper-8.C: New test. + * testsuite/libgomp.c-c++-common/declare-mapper-9.c: New test (only + enabled for C++ for now). + * testsuite/libgomp.c-c++-common/declare-mapper-10.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-11.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-12.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-13.c: Likewise. + * testsuite/libgomp.c-c++-common/declare-mapper-14.c: Likewise. + 2025-05-29 Tobias Burnus PR libgomp/93226 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e3da41b4b6e..9df2d574a70 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,311 @@ +2025-05-30 Tomasz Kamiński + + * testsuite/std/time/format/empty_spec.cc: New test. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h: Use __wait_result_type. + * include/bits/atomic_wait.h (__wait_result_type): New struct. + (__wait_args::_M_prep_for_wait_on): Rename to _M_setup_wait, use + __wait_result_type. + (__atomic_wait_address): Adjust to call _M_setup_wait. + * src/c++20/atomic.cc (__spin_impl): Use __wait_result_type. + (__wait_impl): Likewise. + (__spin_until_impl): Likewise. + (__wait_until_impl): Likewise. + +2025-05-30 Jonathan Wakely + + PR libstdc++/118494 + PR libstdc++/110854 + PR libstdc++/98749 + * acinclude.m4 (GLIBCXX_CHECK_GTHREADS): Remove checks for + sem_timedwait. Do not define _GLIBCXX_HAVE_POSIX_SEMAPHORE. + * config.h.in: Regenerate. + * configure: Regenerate. + * include/bits/semaphore_base.h (__platform_semaphore): Remove. + (__atomic_semaphore): Replace with __semaphore_base and + make type of _M_count depend on template parameter. Fix _S_max + constant to use correct type. + (__semaphore_base::_M_try_acquire): Qualify to avoid ADL. + (__semaphore_base::_M_release): Return old value. Remove FIXME + comment. + (__semaphore_impl): Replace typedef with alias template. + * include/bits/version.def (semaphore): Do not depend on + _GLIBCXX_HAVE_POSIX_SEMAPHORE. + * include/bits/version.h: Regenerate. + * include/std/semaphore (semaphore): Adjust type of _M_sem + member. Add constexpr to constructor. Add assertions to + (semaphore::semaphore(ptrdiff_t)): Add constexpr. Add assertion + for precondition. + (semaphore::release): Add assertion using value returned from + _M_release. + * testsuite/30_threads/semaphore/100806.cc: Increase template + argument for std::counting_semaphore, so constructor + precondition is met. + * testsuite/30_threads/semaphore/cons.cc: New test. + * testsuite/30_threads/semaphore/try_acquire_posix.cc: Remove. + * testsuite/30_threads/semaphore/platform_try_acquire_for.cc: + Removed. + +2025-05-30 Jonathan Wakely + + * include/std/barrier (__tree_barrier_base): New class. + (__tree_barrier): Move non-dependent code into + __tree_barrier_base and derive from it. + +2025-05-30 Jonathan Wakely + + PR libstdc++/118395 + PR libstdc++/108974 + PR libstdc++/98749 + * include/std/barrier (__tree_barrier): Use default + member-initializers. Change _M_state member from + unique_ptr<__state_t[]> to atomic<__state_t*>. Add + no_unique_address attribute to _M_completion. + (__tree_barrier::_M_arrive): Load value from _M_state. + (__tree_barrier::_M_invoke_completion): New member function to + ensure a throwing completion function will terminate, as + proposed in LWG 3898. + (__tree_barrier::max): Reduce by one to avoid overflow. + (__tree_barrier::__tree_barrier): Add constexpr. Qualify call to + std::move. Remove mem-initializers made unnecessary by default + member-initializers. Add precondition check. Only allocate state + array if not constant evaluated. + (__tree_barrier::arrive): Add precondition check. Do deferred + initialization of _M_state if needed. + (barrier): Add static_assert, as proposed in LWG 3898. + (barrier::barrier): Add constexpr. + * testsuite/30_threads/barrier/cons.cc: New test. + * testsuite/30_threads/barrier/lwg3898.cc: New test. + +2025-05-30 Jonathan Wakely + + * include/std/latch (latch::arrive_and_wait): Optimise. + +2025-05-30 Jonathan Wakely + + * config/abi/pre/gnu.ver: Add new symbol version and exports. + * include/bits/atomic_timed_wait.h (__platform_wait_until): Move + to atomic.cc. + (__cond_wait_until, __spin_until_impl): Likewise. + (__wait_until_impl): Likewise. Change __wait_args_base parameter + to non-const reference and change third parameter to + __wait_clock_t::duration. + (__wait_until): Change __wait_args_base parameter to non-const + reference. Change Call time_since_epoch() to get duration from + time_point. + (__wait_for): Change __wait_args_base parameter to non-const + reference. + (__atomic_wait_address_until): Call _M_prep_for_wait_on on args. + (__atomic_wait_address_for): Likewise. + (__atomic_wait_address_until_v): Qualify call to avoid ADL. Do + not forward __vfn. + * include/bits/atomic_wait.h (__platform_wait_uses_type): Use + alignof(T) not alignof(T*). + (__futex_wait_flags, __platform_wait, __platform_notify) + (__waitable_state, __spin_impl, __notify_impl): Move to + atomic.cc. + (__wait_impl): Likewise. Change __wait_args_base parameter to + non-const reference. + (__wait_args_base::_M_wait_state): New data member. + (__wait_args_base::_M_prep_for_wait_on): New member function. + (__wait_args_base::_M_load_proxy_wait_val): New member + function. + (__wait_args_base::_S_memory_order_for): Remove member function. + (__atomic_wait_address): Call _M_prep_for_wait_on on args. + (__atomic_wait_address_v): Qualify call to avoid ADL. + * src/c++20/Makefile.am: Add new file. + * src/c++20/Makefile.in: Regenerate. + * src/c++20/atomic.cc: New file. + * testsuite/17_intro/headers/c++1998/49745.cc: Remove XFAIL for + C++20 and later. + * testsuite/29_atomics/atomic/wait_notify/100334.cc: Remove use + of internal implementation details. + * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.35 version. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h (__wait_until_impl): Adjust + to use new naming. + * include/bits/atomic_wait.h (__waiter_pool_impl): Rename to + __waitable_state. + (__waiter_pool_impl::_S_wait): Rename to _M_waiters. + (__waiter_pool_impl::_S_impl_for): Rename to _S_state_for. + (__waiter_pool_impl::_S_track): Adjust to use new naming. + (__wait_impl, __notify_impl): Likewise. + * testsuite/29_atomics/atomic/wait_notify/100334.cc: Adjust to + use new naming. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h + (__atomic_wait_address_until_v): Replace __atomic_compare with + __atomic_eq. + (__atomic_wait_address_for_v): Likewise. + * include/bits/atomic_wait.h (__atomic_compare): Rename to + __atomic_eq. + (__atomic_wait_address_v): Replace __atomic_compare with + __atomic_eq. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h (__wait_until_impl): Change + first parameter to const void* and then static_cast to const + __platform_wait_t* when not using proxied wait. + (__wait_until): Change first parameter to const void*. + (__wait_for): Likewise. + (__atomic_wait_address_until): Remove reinterpret_cast and allow + address to implicitly convert to const void* instead. + (__atomic_wait_address_for): Likewise. + * include/bits/atomic_wait.h: (__wait_impl, __notify_impl): + Change first parameter to const void* and then static_cast to + const __platform_wait_t* when not using proxied wait. + (__atomic_wait_address, __atomic_notify_address) Remove + reinterpret_cast and allow address to implicitly convert to + const void* instead. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_wait.h (__platform_wait): Change function + template to a normal function. The parameter is always + __platform_wait_t* which is just int* for this implementation of + the function. + (__platform_notify): Likewise. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h (__to_wait_clock): Do not use + chrono::ceil if clock and duration are already correct type. + (__wait_until): Always call __to_wait_clock. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_wait.h (__notify_impl): Increment the + proxy value before returning early for the uncontended case. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h (__cond_wait_impl): Add + missing inline keyword. + (__spin_until_impl): Change parameter from pointer to reference. + Replace make_pair with list-initialization. Initialize variable + for return value. + (__wait_until_impl): Likewise. Remove some preprocessor + conditional logic. Use _S_track for contention tracking. + Avoid unnecessary const_cast. + (__wait_until): Change parameter from pointer to reference. + Replace make_pair with list-initialization. + (__wait_for): Change parameter from pointer to reference. Add + __do_spin flag to args. + * include/bits/atomic_wait.h (__waiter_pool_impl::_S_track): New + function returning an RAII object for contention tracking. + (__wait_flags): Do not set the __do_spin flag in the __spin_only + enumerator. Comment out the unused __abi_version_mask + enumerator. Define operator| and operator|= overloads. + (__wait_args_base::operator&): Define. + (__wait_args::operator&, __wait_args::_S_default_flags): Remove. + (__wait_args::operator|, __wait_args::operator|=): Remove. + (__spin_impl): Change parameter from pointer to reference. + Replace make_pair call with list-initialization. + (__wait_impl): Likewise. Remove some preprocessor conditional + logic. Always store old value in __args._M_old. Avoid + unnecessary const_cast. Use _S_track. + (__notify_impl): Change parameter to reference. Remove some + preprocessor conditional logic. + (__atomic_wait_address): Add comment. Update __args._M_old on + each iteration. + (__atomic_wait_address_v): Add comment. + * include/std/latch (latch::wait): Adjust predicates for new + logic. + * testsuite/29_atomics/atomic_integral/wait_notify.cc: Improve + test. + +2025-05-30 Jonathan Wakely + + * include/bits/atomic_timed_wait.h: Whitespace fixes. + * include/bits/atomic_wait.h: Likewise. + +2025-05-30 Thomas Rodgers + + * include/bits/atomic_timed_wait.h (__spin_until_impl): Accept + __wait_args as const __wait_args_base*. + (__wait_until_impl): Likewise. + (__wait_until): Likewise. + (__wait_for): Likewise. + (__atomic_wait_address_until): Pass __wait_args by address. + (__atomic_wait_address_for): Likewise. + * include/bits/atomic_wait.h (__wait_args_base): New struct. + (__wait_args): Derive from __wait_args_base. + (__wait_args::__wait_args()): Adjust ctors to call call base ctor. + (__wait_args::__wait_args(const __wait_args_base&)): New ctor. + (__wait_args::operator|=): New method. + (__wait_args::_S_flags_for): Change return type to + __wait_flags. + (__spin_impl): Accept __wait_args as const __wait_args_base*. + (__wait_impl): Likewise. + (__notify_impl): Likewise. + (__atomic_wait_address): Pass __wait_args by address. + (__atomic_wait_address_v): Likewise. + (__atomic_notify_address): Likewise. + +2025-05-30 Thomas Rodgers + + * include/bits/atomic_timed_wait.h: + (__detail::__platform_wait_until_impl): Rename to + __platform_wait_until. + (__detail::__platform_wait_until): Remove previous + definition. + (__detail::__cond_wait_until_impl): Rename to + __cond_wait_until. + (__detail::__cond_wait_until): Remove previous + definition. + (__detail::__spin_until_impl): New function. + (__detail::__wait_until_impl): New function. + (__detail::__wait_until): New function. + (__detail::__wait_for): New function. + (__detail::__timed_waiter_pool): Remove type. + (__detail::__timed_backoff_spin_policy): Remove type. + (__detail::__timed_waiter): Remove type. + (__detail::__enters_timed_wait): Remove type alias. + (__detail::__bare_timed_wait): Remove type alias. + (__atomic_wait_address_until): Adjust to new implementation + detail. + (__atomic_wait_address_until_v): Likewise. + (__atomic_wait_address_bare): Remove. + (__atomic_wait_address_for): Adjust to new implementation + detail. + (__atomic_wait_address_for_v): Likewise. + (__atomic_wait_address_for_bare): Remove. + * include/bits/atomic_wait.h: Include bits/stl_pair.h. + (__detail::__default_spin_policy): Remove type. + (__detail::__atomic_spin): Remove function. + (__detail::__waiter_pool_base): Rename to __waiter_pool_impl. + Remove _M_notify. Rename _S_for to _S_impl_for. + (__detail::__waiter_base): Remove type. + (__detail::__waiter_pool): Remove type. + (__detail::__waiter): Remove type. + (__detail::__enters_wait): Remove type alias. + (__detail::__bare_wait): Remove type alias. + (__detail::__wait_flags): New enum. + (__detail::__wait_args): New struct. + (__detail::__wait_result_type): New type alias. + (__detail::__spin_impl): New function. + (__detail::__wait_impl): New function. + (__atomic_wait_address): Adjust to new implementation detail. + (__atomic_wait_address_v): Likewise. + (__atomic_notify_address): Likewise. + (__atomic_wait_address_bare): Delete. + (__atomic_notify_address_bare): Likewise. + * include/bits/semaphore_base.h: Adjust implementation to + use new __atomic_wait_address_v contract. + * include/std/barrier: Adjust implementation to use new + __atomic_wait contract. + * include/std/latch: Adjust implementation to use new + __atomic_wait contract. + * testsuite/29_atomics/atomic/wait_notify/100334.cc (main): + Adjust to for __detail::__waiter_pool_base renaming. + 2025-05-29 Patrick Palka * include/std/flat_map (_Flat_map_impl::operator==): Compare