From: GCC Administrator Date: Sat, 28 Jun 2025 00:20:46 +0000 (+0000) Subject: Daily bump. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=77fb9d6899d07f3bd9c8882ff653ea79127c23f7;p=thirdparty%2Fgcc.git Daily bump. --- diff --git a/contrib/ChangeLog b/contrib/ChangeLog index fbc3cfe0f67..d91f7cdcad9 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,7 @@ +2025-06-26 Alex Coplan + + * mklog.py (main): New. + 2025-06-23 David Malcolm PR other/116792 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d74466126e9..7f22f150562 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,336 @@ +2025-06-27 Eric Botcazou + + * gimple-fold.cc (fold_const_aggregate_ref_1) : + Bail out immediately if the reference has reverse storage order. + * tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Likewise. + +2025-06-27 Jakub Jelinek + + PR c++/120777 + * gimple-fold.cc (gimple_get_virt_method_for_vtable): Revert + 2018-09-18 changes. + +2025-06-27 Nathaniel Shead + + PR c++/98735 + PR c++/118904 + * tree.cc (struct identifier_hash): New type. + (struct identifier_count_traits): New traits. + (internal_label_nums): New hash map. + (generate_internal_label): New function. + (prefix_for_internal_label): New function. + * tree.h (IDENTIFIER_INTERNAL_P): New macro. + (generate_internal_label): Declare. + (prefix_for_internal_label): Declare. + * ubsan.cc (ubsan_ids): Remove. + (ubsan_type_descriptor): Use generate_internal_label. + (ubsan_create_data): Likewise. + +2025-06-27 Jan Hubicka + + * auto-profile.cc (function_instance::set_name, + function_instance::set_realized, function_instnace::realized_p, + function_instance::set_in_worklist, + function_instance::clear_in_worklist, + function_instance::in_worklist_p): New member functions. + (function_instance::in_worklist, function_instance::realized_): + new. + (get_relative_location_for_locus): Break out from .... + (get_relative_location_for_stmt): ... here. + (function_instance::~function_instance): Sanity check that + removed function is not in worklist. + (function_instance::merge): Do not offline realized instances. + (function_instance::offline): Make private; add duplicate functions + to worklist rather then merging immediately. + (function_instance::offline_if_in_set): Cleanup. + (function_instance::remove_external_functions): Likewise. + (function_instance::offline_if_not_realized): New member function. + (autofdo_source_profile::offline_external_functions): Handle delayed + functions. + (autofdo_source_profile::offline_unrealized_inlines): New member function. + (walk_block): New function. + (mark_realized_functions): New function. + (afdo_annotate_cfg): Fix dump. + (auto_profile): Mark realized functions and offline rest; do not compute + fn summary. + +2025-06-27 Georg-Johann Lay + + PR target/113934 + * config/avr/avr.opt (-mlra): Turn on per default. + +2025-06-27 Richard Biener + + PR tree-optimization/120808 + * tree-vect-slp-patterns.cc (vect_match_expression_p): + Take a code_helper and also match calls. + (addsub_pattern::recognize): Handle .FMA/.FMS pairs + in addition to PLUS/MINUS. + (addsub_pattern::build): Adjust. + +2025-06-27 Richard Biener + + * tree-vectorizer.h (vect_chooses_same_modes_p): New + overload. + * tree-vect-stmts.cc (vect_chooses_same_modes_p): Likewise. + * tree-vect-loop.cc (vect_analyze_loop): Prune epilogue + analysis further when not using partial vectors. + +2025-06-27 Richard Biener + + * tree-vect-loop.cc (vect_analyze_loop): Consider AVX512 + style masking when computing supports_partial_vectors. + +2025-06-27 Tamar Christina + + * doc/extend.texi: Fix typo in unsed attribute docs. + +2025-06-27 H.J. Lu + + PR target/120830 + * config/i386/i386-features.cc (ix86_get_vector_cse_mode): Handle + vector broadcast source. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * lra-eliminations.cc (elimination_2sp_occurred_p): Rename + from... + (elimination_fp2sp_occured_p): ... this. Adjust all uses. + (lra_eliminate_regs_1): Don't require a from-frame-pointer + elimination to set it. + (update_reg_eliminate): Likewise to test it. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * lra-eliminations.cc (lra_eliminate_regs_1): Adjust autoinc + addresses that are MEMs. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * lra-eliminations.cc (lra_update_fp2sp_elimination): Reorder + and regroup related statements. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * lra-eliminations.cc (lra_update_fp2sp_elimination): + Avoid sp offsets in further fp2sp eliminations... + (update_reg_eliminate): ... and restore to_rtx before assert + checking. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * lra-eliminations.cc (lra_update_fp2sp_elimination): + Compute complete live ranges and recompute slots' live ranges + if needed. + * lra-lives.cc (lra_reset_live_range_list): New. + (lra_complete_live_ranges): New. + * lra-spills.cc (assign_spill_hard_regs): Reject empty live + ranges. + (add_pseudo_to_slot): Likewise. + (lra_recompute_slots_live_ranges): New. + * lra-int.h (lra_reset_live_range_list): Declare. + (lra_complete_live_ranges): Declare. + (lra_recompute_slots_live_ranges): Declare. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * genoutput.cc (scan_operands): Make MATCH_SCRATCHes eliminable. + +2025-06-27 Alexandre Oliva + + PR rtl-optimization/120424 + * lra-eliminations.cc (lra_update_fp2sp_elimination): + Inactivate the unused fp2sp elimination right away. + +2025-06-26 Dimitar Dimitrov + + * config/pru/pru.md (reg move splitter): New splitter for 64-bit + register moves into two 32-bit moves. + (const_int move splitter): New splitter for 64-bit constant + integer moves into two 32-bit moves. + +2025-06-26 David Malcolm + + * diagnostic.h (diagnostic_context::set_permissive_option): New. + (diagnostic_context::set_fatal_errors): New. + (diagnostic_context::set_internal_error_callback): New. + (diagnostic_context::set_adjust_diagnostic_info_callback): New. + (diagnostic_context::inhibit_notes): New. + (diagnostic_context::m_opt_permissive): Make private. + (diagnostic_context::m_fatal_errors): Likewise. + (diagnostic_context::m_internal_error): Likewise. + (diagnostic_context::m_adjust_diagnostic_info): Likewise. + (diagnostic_context::m_inhibit_notes_p): Likewise. + (diagnostic_inhibit_notes): Delete. + * opts.cc (common_handle_option): Use + diagnostic_context::set_fatal_errors. + * toplev.cc (internal_error_function): Use + diagnostic_context::set_internal_error_callback. + (general_init): Likewise. + (process_options): Use diagnostic_context::inhibit_notes. + +2025-06-26 David Malcolm + + PR analyzer/120809 + * diagnostic-format-html.cc + (html_builder::maybe_make_state_diagram): Bulletproof against the + SVG generation failing. + * xml.cc (xml::printer::push_element): Assert that the ptr is + nonnull. + (xml::printer::append): Likewise. + +2025-06-26 David Malcolm + + * diagnostic-output-spec.cc (sarif_scheme_handler::make_sink): + Split out creation of sarif_generation_options and + sarif_serialization_format into... + (sarif_scheme_handler::make_sarif_gen_opts): ...this... + (sarif_scheme_handler::make_sarif_serialization_object): ...and + this. + +2025-06-26 Paul-Antoine Arras + + PR target/120828 + * config/riscv/riscv-v.cc (prepare_ternary_operands): Handle the + vector-scalar case. + +2025-06-26 Uros Bizjak + + PR target/120719 + * config/i386/i386.md (crc_revsi4): New expander. + +2025-06-26 Kito Cheng + + * config/riscv/riscv.md: Fix build issue. + +2025-06-26 Martin Jambor + + * lto-ltrans-cache.h (class ltrans_file_cache): Remove member prefix. + * lto-ltrans-cache.cc (ltrans_file_cache::ltrans_file_cache): Do + not initialize member prefix. + +2025-06-26 Kito Cheng + + * config/riscv/riscv.md: Add comment and reorder include + files. + +2025-06-26 Martin Jambor + + * tree-vect-stmts.cc (supportable_indirect_convert_operation): + Remove an unused shadowed variable. + +2025-06-26 Martin Jambor + + * tree-vect-slp.cc (cond_expr_maps): Remove. + +2025-06-26 Jan Hubicka + + * auto-profile.cc (function_instance::merge): Add TODO. + (autofdo_source_profile::offline_external_functions): + Do not use range for on the worklist. + * timevar.def (TV_IPA_AUTOFDO_OFFLINE): New timevar. + +2025-06-26 Jan Hubicka + + * auto-profile.cc (name_index_set, name_index_map): New types. + (dump_afdo_loc): New function. + (dump_inline_stack): Simplify. + (function_instance::merge): Merge recursively inlined functions; + offline if necessary; collect new fnctions. + (function_instance::offline): New member function. + (function_instance::offline_if_in_set): New member function. + (function_instance::remove_external_functions): New member function. + (function_instance::dump): New member function. + (function_instance::debug): New member function. + (function_instance::dump_inline_stack): New member function. + (function_instance::find_icall_target_map): Use removed_icall_target. + (function_instance::remove_icall_target): Only mark icall target removed. + (autofdo_source_profile::offline_external_functions): New function. + (function_instance::read_function_instance): Record inlined_to pointers; + use -1 for unknown head counts. + (autofdo_source_profile::get_function_instance_by_name_index): New + function. + (autofdo_source_profile::add_function_instance): New member function. + (autofdo_source_profile::read): Do not leak memory; fix formatting. + (read_profile): Fix formatting. + (afdo_annotate_cfg): LIkewise. + (class pass_ipa_auto_profile_offline): New pass. + (make_pass_ipa_auto_profile_offline): New function. + * passes.def (pass_ipa_auto_profile_offline): Add + * tree-pass.h (make_pass_ipa_auto_profile): Declare + +2025-06-26 H.J. Lu + + PR target/120819 + * config/i386/i386-features.cc (ix86_broadcast_inner): Also handle + all 1s float vector constant. + +2025-06-26 H.J. Lu + + PR target/120816 + * config/i386/i386-features.cc (remove_redundant_vector_load): + Handle REG_EH_REGION note in DEF_INSN. + +2025-06-26 H.J. Lu + + PR target/119628 + * config/i386/i386-expand.cc (ix86_expand_call): Call + ix86_type_no_callee_saved_registers_p instead of looking up + no_callee_saved_registers attribute. + * config/i386/i386-options.cc (ix86_set_func_type): Look up + preserve_none attribute. Check preserve_none attribute for + interrupt attribute. Don't check no_caller_saved_registers nor + no_callee_saved_registers conflicts here. + (ix86_set_func_type): Check no_callee_saved_registers before + checking no_caller_saved_registers attribute. + (ix86_set_current_function): Allow SSE with + no_caller_saved_registers attribute. + (ix86_handle_call_saved_registers_attribute): Check preserve_none, + no_callee_saved_registers and no_caller_saved_registers conflicts. + (ix86_gnu_attributes): Add preserve_none attribute. + * config/i386/i386-protos.h (ix86_type_no_callee_saved_registers_p): + New. + * config/i386/i386.cc + (x86_64_preserve_none_int_parameter_registers): New. + (ix86_using_red_zone): Don't use red-zone when there are no + caller-saved registers with SSE. + (ix86_type_no_callee_saved_registers_p): New. + (ix86_function_ok_for_sibcall): Also check TYPE_PRESERVE_NONE + and call ix86_type_no_callee_saved_registers_p instead of looking + up no_callee_saved_registers attribute. + (ix86_comp_type_attributes): Call + ix86_type_no_callee_saved_registers_p instead of looking up + no_callee_saved_registers attribute. Return 0 if preserve_none + attribute doesn't match in 64-bit mode. + (ix86_function_arg_regno_p): For cfun with TYPE_PRESERVE_NONE, + use x86_64_preserve_none_int_parameter_registers. + (init_cumulative_args): Set preserve_none_abi. + (function_arg_64): Use x86_64_preserve_none_int_parameter_registers + with preserve_none attribute. + (setup_incoming_varargs_64): Use + x86_64_preserve_none_int_parameter_registers with preserve_none + attribute. + (ix86_save_reg): Treat TYPE_PRESERVE_NONE like + TYPE_NO_CALLEE_SAVED_REGISTERS. + (ix86_nsaved_sseregs): Allow saving XMM registers for + no_caller_saved_registers attribute. + (ix86_compute_frame_layout): Likewise. + (x86_this_parameter): Use + x86_64_preserve_none_int_parameter_registers with preserve_none + attribute. + * config/i386/i386.h (ix86_args): Add preserve_none_abi. + (call_saved_registers_type): Add TYPE_PRESERVE_NONE. + (machine_function): Change call_saved_registers to 3 bits. + * doc/extend.texi: Add preserve_none attribute. Update + no_caller_saved_registers attribute to remove -mgeneral-regs-only + restriction. + 2025-06-25 H.J. Lu * config/i386/i386-features.cc (ix86_place_single_vector_set): diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index efcd83eefd6..89bcad6c215 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20250626 +20250628 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 9c18d8c1f26..715feb401d4 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2025-06-26 David Malcolm + + * gcc-interface/misc.cc (gnat_init): Use + diagnostic_context::set_internal_error_callback. + 2025-06-22 Nicolas Boulenguez PR ada/120106 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 1d721f3b08a..debd181e872 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,14 @@ +2025-06-27 Jakub Jelinek + + PR c++/120777 + * c-cppbuiltin.cc (c_cpp_builtins): Predefine + __cpp_constexpr_virtual_inheritance=202506L for C++26. + +2025-06-26 David Malcolm + + * c-opts.cc (c_common_diagnostics_set_defaults): Use + diagnostic_context::set_permissive_option. + 2025-06-23 Tobias Burnus * c-omp.cc (c_finish_oacc_wait): Handle if clause. diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ffd16ea4c01..d97eefff929 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,112 @@ +2025-06-27 Marek Polacek + + PR c++/120756 + * pt.cc (resolve_nondeduced_context): Pass complain to mark_used. + +2025-06-27 Jakub Jelinek + + PR c++/120777 + * constexpr.cc: Implement C++26 P3533R2 - constexpr virtual + inheritance. + (is_valid_constexpr_fn): Don't reject constexpr cdtors in classes + with virtual bases for C++26, adjust error wording. + (cxx_bind_parameters_in_call): Add ORIG_FUN argument, add + values for __in_chrg and __vtt_parm arguments when needed. + (cxx_eval_dynamic_cast_fn): Adjust function comment, HINT -1 + should be possible. For C++26 if obj is cast from POINTER_PLUS_EXPR, + attempt to use cxx_fold_indirect_ref to simplify it and if successful, + build ADDR_EXPR of that. + (cxx_eval_call_expression): Add orig_fun variable, set it to + fun before looking through clones, pass it to + cxx_bind_parameters_in_call. + (reduced_constant_expression_p): Add SZ argument, pass DECL_SIZE + of FIELD_DECL e.index to recursive calls and don't return false + if SZ is non-NULL and there are unfilled fields with bit position + at or above SZ. + (cxx_fold_indirect_ref_1): Handle reading of vtables using + ptrdiff_t dynamic type instead of some pointer type. Set el_sz + to DECL_SIZE_UNIT value rather than TYPE_SIZE_UNIT of + DECL_FIELD_IS_BASE fields in classes with virtual bases. + (cxx_fold_indirect_ref): In canonicalize_obj_off lambda look + through COMPONENT_REFs with DECL_FIELD_IS_BASE in classes with + virtual bases and adjust off correspondingly. Remove assertion that + off is integer_zerop, pass tree_to_uhwi (off) instead of 0 to the + cxx_fold_indirect_ref_1 call. + * cp-tree.h (publicly_virtually_derived_p): Declare. + (reduced_constant_expression_p): Add another tree argument defaulted + to NULL_TREE. + * method.cc (synthesized_method_walk): Don't clear *constexpr_p + if there are virtual bases for C++26. + * class.cc (build_base_path): Compute fixed_type_p and + virtual_access before checks for build_simple_base_path instead of + after that and conditional cp_build_addr_expr. Use build_simple_path + if !virtual_access even when v_binfo is non-NULL. + (layout_virtual_bases): For build_base_field calls use + access_public_node rather than access_private_node if + publicly_virtually_derived_p. + (build_vtbl_initializer): Revert 2018-09-18 and 2018-12-11 changes. + (publicly_virtually_derived_p): New function. + +2025-06-27 Jason Merrill + + * class.cc (fixed_type_or_null): Handle class-type CALL_EXPR. + * parser.cc (cp_parser_binary_expression): Fix decltype_p handling. + +2025-06-27 Nathaniel Shead + + PR c++/98735 + PR c++/118904 + * cp-gimplify.cc (source_location_id): Remove. + (fold_builtin_source_location): Use generate_internal_label. + * module.cc (enum tree_tag): Add 'tt_internal_id' enumerator. + (trees_out::tree_value): Adjust assertion, write definitions + of uncontexted VAR_DECLs. + (trees_in::tree_value): Read variable definitions. + (trees_out::tree_node): Write internal labels, adjust assert. + (trees_in::tree_node): Read internal labels. + +2025-06-27 Nathaniel Shead + + PR c++/120040 + * constexpr.cc (cxx_eval_constant_expression): Handle TYPE_NAME + now being a TYPE_DECL rather than just an IDENTIFIER_NODE. + * init.cc (build_new_constexpr_heap_type): Build a TYPE_DECL for + the returned type; mark the type as artificial. + * module.cc (trees_out::type_node): Add some assertions. + +2025-06-27 Nathaniel Shead + + PR c++/98735 + PR c++/120040 + * module.cc (trees_out::tree_value): Write TYPE_DECLs. + (trees_in::tree_value): Read TYPE_DECLs. + (trees_out::tree_node): Support uncontexted TYPE_DECLs, and + ensure that all parts of a by-value decl are marked for + streaming. + (trees_out::get_merge_kind): Treat members of uncontexted types + as always unique. + +2025-06-27 Nathaniel Shead + + * decl.cc (grokfndecl): Add explanation of how to attach to + global module. + +2025-06-26 David Malcolm + + * error.cc (cxx_initialize_diagnostics): Use + diagnostic_context::set_adjust_diagnostic_info_callback. + +2025-06-26 Jakub Jelinek + + * cp-trait.def: Implement C++26 P2830R10 - Constexpr Type Ordering. + (TYPE_ORDER): New. + * method.cc (type_order_value): Define. + * cp-tree.h (type_order_value): Declare. + * semantics.cc (trait_expr_value): Use gcc_unreachable also + for CPTK_TYPE_ORDER, adjust comment. + (finish_trait_expr): Handle CPTK_TYPE_ORDER. + * constraint.cc (diagnose_trait_expr): Likewise. + 2025-06-25 Martin Jambor * coroutines.h (class cp_coroutine_transform): Remove member diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4bdd2f86a83..6b44a691c47 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,30 @@ +2025-06-27 Harald Anlauf + + PR fortran/120784 + * interface.cc (gfc_match_end_interface): Detect empty local_name. + +2025-06-26 Martin Jambor + + * match.cc (gfc_match_nullify): Initialize p to NULL; + +2025-06-26 Andre Vehreschild + + * trans.cc (gfc_allocate_using_malloc): Prevent possible memory + leak when allocation was already done. + +2025-06-26 Andre Vehreschild + + * resolve.cc (resolve_fl_derived0): Do not create the token + component when not in coarray lib mode. + * trans-types.cc: Do not access the token when not in coarray + lib mode. + +2025-06-26 Andre Vehreschild + + PR fortran/120711 + * trans-array.cc (gfc_trans_array_ctor_element): Store the value + of the offset for reuse. + 2025-06-24 Tobias Burnus * trans-stmt.cc (gfc_trans_call_acc_attach_detach): New. diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog index 5cb93113266..2a5219d2fe0 100644 --- a/gcc/rust/ChangeLog +++ b/gcc/rust/ChangeLog @@ -1,3 +1,8 @@ +2025-06-26 Martin Jambor + + * checks/errors/borrowck/rust-borrow-checker-diagnostics.cc + (BorrowCheckerDiagnostics::get_loan): Type cast loan to uint32_t. + 2025-04-28 Owen Avery * checks/errors/borrowck/rust-bir-place.h diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 672bb80d3f4..48dfa9b9595 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,165 @@ +2025-06-27 Marek Polacek + + PR c++/120756 + * g++.dg/warn/deprecated-22.C: New test. + +2025-06-27 Jason Merrill + + * g++.dg/abi/mangle81.C: Add -fno-implicit-constexpr. + * g++.dg/init/vbase1.C: Likewise. + * g++.dg/ipa/ipa-icf-4.C: Likewise. + +2025-06-27 Eric Botcazou + + * gnat.dg/sso20.adb: New test. + +2025-06-27 Jakub Jelinek + + PR c++/120777 + * g++.dg/cpp26/constexpr-virt-inherit1.C: New test. + * g++.dg/cpp26/constexpr-virt-inherit2.C: New test. + * g++.dg/cpp26/constexpr-virt-inherit3.C: New test. + * g++.dg/cpp26/feat-cxx26.C: Add __cpp_constexpr_virtual_inheritance + tersts. + * g++.dg/cpp2a/constexpr-dtor3.C: Don't expect one error for C++26. + * g++.dg/cpp2a/constexpr-dtor16.C: Don't expect errors for C++26. + * g++.dg/cpp2a/constexpr-dynamic10.C: Likewise. + * g++.dg/cpp0x/constexpr-ice21.C: Likewise. + * g++.dg/cpp0x/constexpr-ice4.C: Likewise. + * g++.dg/abi/mangle1.C: Guard the test on c++23_down. + * g++.dg/abi/mangle81.C: New test. + * g++.dg/ipa/ipa-icf-4.C (A::A): For + __cpp_constexpr_virtual_inheritance >= 202506L add user provided + non-constexpr constructor. + +2025-06-27 Harald Anlauf + + PR fortran/120784 + * gfortran.dg/interface_63.f90: Extend testcase. + +2025-06-27 Nathaniel Shead + + PR c++/98735 + PR c++/118904 + * g++.dg/modules/src-loc-1.h: New test. + * g++.dg/modules/src-loc-1_a.H: New test. + * g++.dg/modules/src-loc-1_b.C: New test. + * g++.dg/modules/src-loc-1_c.C: New test. + * g++.dg/modules/ubsan-1_a.C: New test. + * g++.dg/modules/ubsan-1_b.C: New test. + * g++.dg/ubsan/module-1-aux.cc: New test. + * g++.dg/ubsan/module-1.C: New test. + +2025-06-27 Nathaniel Shead + + PR c++/120040 + * g++.dg/modules/pr120040_a.C: New test. + * g++.dg/modules/pr120040_b.C: New test. + +2025-06-27 Jan Hubicka + + * gcc.dg/tree-prof/afdo-crossmodule-1.c: Update template. + +2025-06-27 Jeff Law + + PR target/119971 + * gcc.target/riscv/pr119971.c: Fix typo. + +2025-06-27 Richard Biener + + PR tree-optimization/120808 + * gcc.dg/vect/bb-slp-pr120808.c: Now also expect FMADDSUB + patterns to be matched. + +2025-06-27 H.J. Lu + + PR target/120830 + * g++.target/i386/pr120830.C: New test. + +2025-06-26 Dimitar Dimitrov + + * gcc.target/pru/mov64-subreg-1.c: New test. + * gcc.target/pru/mov64-subreg-2.c: New test. + +2025-06-26 David Malcolm + + PR analyzer/120809 + * gcc.dg/analyzer/state-diagram-5.c: Split out into... + * gcc.dg/analyzer/state-diagram-5-html.c: ...this, adding + dg-require-dot... + * gcc.dg/analyzer/state-diagram-5-sarif.c: ...and this. + +2025-06-26 Jakub Jelinek + + * g++.dg/cpp26/type-order1.C: New test. + * g++.dg/cpp26/type-order2.C: New test. + * g++.dg/cpp26/type-order3.C: New test. + +2025-06-26 Uros Bizjak + + PR target/120719 + * gcc.target/i386/crc-builtin-crc32.c: New test. + +2025-06-26 Jan Hubicka + + * gcc.dg/tree-prof/afdo-crossmodule-1.c: New test. + * gcc.dg/tree-prof/afdo-crossmodule-1b.c: New test. + +2025-06-26 Andre Vehreschild + + PR fortran/120711 + * gfortran.dg/asan/array_constructor_1.f90: New test. + +2025-06-26 Jan Hubicka + + * gcc.dg/tree-prof/indir-call-prof-2.c: Update template. + +2025-06-26 H.J. Lu + + PR target/120819 + * g++.target/i386/pr120819.C: New test. + +2025-06-26 H.J. Lu + + PR target/119628 + * gcc.target/i386/no-callee-saved-3.c: Adjust error location. + * gcc.target/i386/no-callee-saved-19a.c: New test. + * gcc.target/i386/no-callee-saved-19b.c: Likewise. + * gcc.target/i386/no-callee-saved-19c.c: Likewise. + * gcc.target/i386/no-callee-saved-19d.c: Likewise. + * gcc.target/i386/no-callee-saved-19e.c: Likewise. + * gcc.target/i386/preserve-none-1.c: Likewise. + * gcc.target/i386/preserve-none-2.c: Likewise. + * gcc.target/i386/preserve-none-3.c: Likewise. + * gcc.target/i386/preserve-none-4.c: Likewise. + * gcc.target/i386/preserve-none-5.c: Likewise. + * gcc.target/i386/preserve-none-6.c: Likewise. + * gcc.target/i386/preserve-none-7.c: Likewise. + * gcc.target/i386/preserve-none-8.c: Likewise. + * gcc.target/i386/preserve-none-9.c: Likewise. + * gcc.target/i386/preserve-none-10.c: Likewise. + * gcc.target/i386/preserve-none-11.c: Likewise. + * gcc.target/i386/preserve-none-12.c: Likewise. + * gcc.target/i386/preserve-none-13.c: Likewise. + * gcc.target/i386/preserve-none-14.c: Likewise. + * gcc.target/i386/preserve-none-15.c: Likewise. + * gcc.target/i386/preserve-none-16.c: Likewise. + * gcc.target/i386/preserve-none-17.c: Likewise. + * gcc.target/i386/preserve-none-18.c: Likewise. + * gcc.target/i386/preserve-none-19.c: Likewise. + * gcc.target/i386/preserve-none-20.c: Likewise. + * gcc.target/i386/preserve-none-21.c: Likewise. + * gcc.target/i386/preserve-none-22.c: Likewise. + * gcc.target/i386/preserve-none-23.c: Likewise. + * gcc.target/i386/preserve-none-24.c: Likewise. + * gcc.target/i386/preserve-none-25.c: Likewise. + * gcc.target/i386/preserve-none-26.c: Likewise. + * gcc.target/i386/preserve-none-27.c: Likewise. + * gcc.target/i386/preserve-none-28.c: Likewise. + * gcc.target/i386/preserve-none-29.c: Likewise. + * gcc.target/i386/preserve-none-30a.c: Likewise. + * gcc.target/i386/preserve-none-30b.c: Likewise. + 2025-06-25 Luis Silva * gcc.target/arc/mult-cmp0.c: New test. diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 57e068f62b6..38773c86205 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,265 @@ +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (shuffle_fn::operator()): + Reimplement directly, based on the stl_algo.h implementation. + * testsuite/25_algorithms/shuffle/constrained.cc (test02): + New test. + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (__sample_fn::operator()): + Reimplement the forward_iterator branch directly, based + on the stl_algo.h implementation. Add explicit cast to + _Out's difference_type in the !forward_iterator branch. + * testsuite/25_algorithms/sample/constrained.cc (test02): + New test. + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (__detail::__introselect): New, + based on the stl_algo.h implementation. + (nth_element_fn::operator()): Reimplement in terms of the above. + * testsuite/25_algorithms/nth_element/constrained.cc: + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (__detail::__find_if_not_n): New, + based on the stl_algo.h implementation. + (__detail::__stable_partition_adaptive): Likewise. + (__stable_partition_fn::operator()): Reimplement in terms of + the above. + * testsuite/25_algorithms/stable_partition/constrained.cc + (test03): New test. + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (__detail::__move_merge): New, + based on the stl_algo.h implementation. + (__detail::__merge_sort_loop): Likewise. + (__detail::__chunk_insertion_sort): Likewise. + (__detail::__merge_sort_with_buffer): Likewise. + (__detail::__stable_sort_adaptive): Likewise. + (__detail::__stable_sort_adaptive_resize): Likewise. + (__detail::__inplace_stable_sort): Likewise. + (__stable_sort_fn::operator()): Reimplement in terms of the above. + * testsuite/25_algorithms/stable_sort/constrained.cc: + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (__detail::__move_merge_adaptive): + New, based on the stl_algo.h implementation. + (__detail::__move_merge_adaptive_backward): Likewise. + (__detail::__rotate_adaptive): Likewise. + (__detail::__merge_adaptive): Likewise. + (__detail::__merge_adaptive_resize): Likewise. + (__detail::__merge_without_buffer): Likewise. + (__inplace_merge_fn::operator()): Reimplement in terms of the + above. + * testsuite/25_algorithms/inplace_merge/constrained.cc (test03): + New test. + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + PR libstdc++/118209 + * include/bits/max_size_type.h (__bit_width): New explicit + specialization for __max_size_type. + * include/bits/ranges_algo.h (__detail::__move_median_to_first): + New, based on the stl_algo.h implementation. + (__detail::__unguarded_liner_insert): Likewise. + (__detail::__insertion_sort): Likewise. + (__detail::__sort_threshold): Likewise. + (__detail::__unguarded_insertion_sort): Likewise. + (__detail::__final_insertion_sort): Likewise. + (__detail::__unguarded_partition): Likewise. + (__detail::__unguarded_partition_pivot): Likewise. + (__detail::__heap_select): Likewise. + (__detail::__partial_sort): Likewise. + (__detail::__introsort_loop): Likewise. + (__sort_fn::operator()): Reimplement in terms of the above. + * testsuite/25_algorithms/sort/118209.cc: New test. + * testsuite/25_algorithms/sort/constrained.cc (test03): New test. + +2025-06-27 Patrick Palka + + PR libstdc++/100795 + * include/bits/ranges_algo.h (__detail::__push_heap): New, + based on the stl_heap.h implementation. + (__push_heap_fn::operator()): Reimplement in terms of the above. + (__detail::__adjust_heap): New, based on the stl_heap.h + implementation. + (__deatil::__pop_heap): Likewise. + (__pop_heap_fn::operator()): Reimplement in terms of the above. + (__make_heap_fn::operator()): Likewise. + (__sort_heap_fn::operator()): Likewise. + * testsuite/25_algorithms/heap/constrained.cc (test03): New + test. + +2025-06-27 Tomasz Kamiński + + PR libstdc++/110739 + * include/bits/chrono_io.h (__formatter_chrono::_S_empty_fs): Define. + (__formatter_chrono::_S_str_d2): Use _S_str_d3 for 3+ digits and + place allways_inline attribute after comment. + (__formatter_chrono::_S_str_d3): Extracted from _S_str_d2. + (__formatter_chrono::_M_H_I, __formatter_chrono::_M_R_X): Replace + _S_empty_spec with _S_empty_fs(). + (__formatter_chrono::_M_j): Likewise and use _S_str_d3 in common + case. + (__format::operator-(_ChronoParts, _ChronoParts)) + (__format::operator-=(_ChronoParts, _ChronoParts)) + (__formatter_chrono::_S_fill_two_digits) + (__formatter_chrono::_S_str_d1): Place always_inline attribute + after comment. + +2025-06-27 Tomasz Kamiński + + PR libstdc++/110739 + * include/bits/chrono_io.h (__formatter_chrono::_M_format_to): + Rename _Out to _OutIter for consistency, and update calls + to specifier functions. + (__formatter_chrono::_M_wi, __formatter_chrono::_M_C_y_Y) + (__formatter_chrono::_M_D_x, __formatter_chrono::_M_d_e) + (__formatter_chrono::_M_F, __formatter_chrono::_M_g_G) + (__formatter_chrono::_M_H_I, __formatter_chrono::_M_j) + (__formatter_chrono::_M_m, __formatter_chrono::_M_M) + (__formatter_chrono::_M_q, __formatter_chrono::_M_R_X) + (__formatter_chrono::_M_u_w, __formatter_chrono::_M_U_V_W) + (__formatter_chrono::_M_z, __formatter_chrono::_M_z): + Remove _FormatContext parameter, and introduce _OutIter + for __out type. + (__formatter_chrono::_M_a_A, __formatter_chrono::_M_B_b) + (__formatter_chrono::_M_p, __formatter_chrono::_M_Q) + (__formatter_chrono::_M_r, __formatter_chrono::_M_S) + (__formatter_chrono::_M_subsecs, __formatter_chrono::_M_T): + Introduce separate _OutIter template parameter for __out. + (__formatter_chrono::_M_c, __formatter_chrono::_M_T): + Likewise, and adjust calls to specifiers functions. + * testsuite/std/time/format/empty_spec.cc: Make underlying + type for Rep configurable. + +2025-06-27 Iain Sandoe + + * config/abi/pre/gnu.ver: Keep the closing brace of the + CXXABI_1.3.17 symbol group together with the identifier + for the inherited group. + +2025-06-26 Tomasz Kamiński + + PR libstdc++/110739 + * include/bits/chrono_io.h (__formatter_chrono::_M_use_locale_fmt): + Define. + (__formatter_chrono::_M_locale_fmt): Moved to front of the class. + (__formatter_chrono::_M_format_to): Construct and initialize + struct tm and call _M_locale_fmt if needed. + (__formatter_chrono::_M_c_r_x_X): Split into separate methods. + (__formatter_chrono::_M_c, __formatter_chrono::_M_r): Define. + (__formatter_chrono::_M_D): Renamed to _M_D_x. + (__formatter_chrono::_M_D_x): Renamed from _M_D. + (__formatter_chrono::_M_R_T): Split into _M_R_X and _M_T. + (__formatter_chrono::_M_R_X): Extracted from _M_R_T. + (__formatter_chrono::_M_T): Define in terms of _M_R_X and _M_subsecs. + (__formatter_chrono::_M_subsecs): Extracted from _M_S. + (__formatter_chrono::_M_S): Replaced __mod with __subs argument, + removed _M_locale_fmt call, and delegate to _M_subsecs. + (__formatter_chrono::_M_C_y_Y, __formatter_chrono::_M_d_e) + (__formatter_chrono::_M_H_I, __formatter_chrono::_M_m) + (__formatter_chrono::_M_u_w, __formatter_chrono::_M_U_V_W): Remove + __mod argument and call to _M_locale_fmt. + +2025-06-26 Tomasz Kamiński + + PR libstdc++/110739 + * include/bits/chrono_io.h (__format::__no_timezone_available): + Removed, replaced with separate throws in formatter for + __local_time_fmt + (__format::_ChronoParts): Defined additional enumertors and + declared as enum class. + (__format::operator&(_ChronoParts, _ChronoParts)) + (__format::operator&=(_ChronoParts&, _ChronoParts)) + (__format::operator-(_ChronoParts, _ChronoParts)) + (__format::operator-=(_ChronoParts&, _ChronoParts)) + (__format::operator==(_ChronoParts, decltype(nullptr))) + (_ChronoSpec::_M_time_only, _ChronoSpec::_M_floating_point_rep) + (_ChronoSpec::_M_custom_rep, _ChronoSpec::_M_needed) + (_ChronoSpec::_M_needs, __format::_ChronoData): Define. + (__format::__formatter_chrono): Redefine to accept _ChronoData. + (__formatter_chrono::_M_format_to_ostream): Moved to + __formatter_duration. + (__format::__formatter_duration): Define. + (__formatter_chrono_info::format): Pass value-constructed + _ChronoData. + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter) + (std::formatter): + Construct _ChronoData in format, and configure _M_needed in + _ChronoSpec. + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>) + (std::formatter, _CharT>): + Reworked in terms of __formatter_duration and _ChronoData. + (std::formatter, _CharT>): + Removed. + (_Parser<_Duration>::operator()): Adjusted for _ChronoParts + being enum class. + * include/std/chrono (__detail::__utc_leap_second): Removed, + replaced with simply bumping _M_seconds in _ChronoData. + * testsuite/std/time/format/empty_spec.cc: Updated %S integral + ouput. + +2025-06-26 Jakub Jelinek + + * include/bits/version.def (exception_ptr_cast): Add. + * include/bits/version.h: Regenerate. + * libsupc++/exception: Define __glibcxx_want_exception_ptr_cast before + including bits/version.h. + * libsupc++/exception_ptr.h (std::exception_ptr_cast): Define. + (std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Declare. + * libsupc++/eh_ptr.cc + (std::__exception_ptr::exception_ptr::_M_exception_ptr_cast): Define. + * src/c++23/std.cc.in (std::exception_ptr_cast): Export. + * config/abi/pre/gnu.ver: Export + _ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info + at CXXABI_1.3.17. + * testsuite/util/testsuite_abi.cc (check_version): Allow CXXABI_1.3.17. + * testsuite/18_support/exception_ptr/exception_ptr_cast.cc: New test. + +2025-06-26 Jakub Jelinek + + * include/bits/version.def (type_order): New. + * include/bits/version.h: Regenerate. + * libsupc++/compare: Define __glibcxx_want_type_order before + including bits/version.h. + (std::type_order, std::type_order_v): New trait and template variable. + * src/c++23/std.cc.in (std::type_order, std::type_order_v): Export. + * testsuite/18_support/comparisons/type_order/1.cc: New test. + 2025-06-25 Tomasz Kamiński * testsuite/std/time/format/precision.cc: New tests.