diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ChangeLog | 293 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/analyzer/ChangeLog | 419 | ||||
-rw-r--r-- | gcc/c-family/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/c/ChangeLog | 28 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 35 | ||||
-rw-r--r-- | gcc/jit/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/rust/ChangeLog | 353 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 312 | ||||
-rw-r--r-- | libcpp/ChangeLog | 6 | ||||
-rw-r--r-- | libstdc++-v3/ChangeLog | 64 |
12 files changed, 1537 insertions, 1 deletions
@@ -1,3 +1,7 @@ +2025-04-28 Kwok Cheung Yeung <kcyeung@baylibre.com> + + * MAINTAINERS (kcy): Add gcc.gnu.org username. + 2025-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR cobol/119217 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e84f05..eab3231 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,296 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/97111 + * doc/invoke.texi: Add -Wanalyzer-throw-of-unexpected-type. + * gimple.h (gimple_call_nothrow_p): Make arg const. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * diagnostic-format-json.cc: Drop include of "make-unique.h". + Replace uses of ::make_unique with std::make_unique. + * diagnostic-format-sarif.cc: Likewise. + * diagnostic-format-text.cc: Likewise. + * diagnostic.cc: Likewise. + * dumpfile.cc: Likewise. + * gcc-attribute-urlifier.cc: Likewise. + * gcc-urlifier.cc: Likewise. + * json-parsing.cc: Likewise. + * json.cc: Likewise. + * lazy-diagnostic-path.cc: Likewise. + * libgdiagnostics.cc: Likewise. + * libsarifreplay.cc: Likewise. + * lto-wrapper.cc: Likewise. + * make-unique.h: Delete. + * opts-diagnostic.cc: Drop include of "make-unique.h". + Replace uses of ::make_unique with std::make_unique. + * pretty-print.cc: Likewise. + * text-art/style.cc: Likewise. + * text-art/styled-string.cc: Likewise. + * text-art/table.cc: Likewise. + * text-art/tree-widget.cc: Likewise. + * text-art/widget.cc: Likewise. + * timevar.cc: Likewise. + * toplev.cc: Likewise. + * tree-diagnostic-client-data-hooks.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * pass_manager.h (class pass_manager): Add "m_" prefix to all pass + fields. + * passes.cc (pass_manager::execute_early_local_passes): Update + for added "m_" prefix. + (pass_manager::execute_pass_mode_switching): Likewise. + (pass_manager::finish_optimization_passes): Likewise. + (pass_manager::pass_manager): Likewise. + (pass_manager::dump_profile_report): Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * diagnostic.h (diagnostic_context::m_opt_permissive): Convert + from int to diagnostic_option_id. Update comment. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * diagnostic.h (diagnostic_context::set_abort_on_error): New. + (diagnostic_context::m_abort_on_error): Make private. + (diagnostic_abort_on_error): Delete. + * opts.cc (setup_core_dumping): Update for above changes. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * diagnostic-format-sarif.cc (sarif_builder::get_opts): New + accessor. + (sarif_builder::get_version): Update for... + (sarif_builder::m_version): Replace this field... + (sarif_builder::m_m_sarif_gen_opts): ...with this. + (sarif_builder::sarif_builder): Replace version with + sarif_gen_opts throughout. + (sarif_builder::make_top_level_object): Use get_version. + (sarif_output_format::sarif_output_format): Replace version with + sarif_gen_opts throughout. + (sarif_stream_output_format::sarif_stream_output_format): + Likewise. + (sarif_file_output_format::sarif_file_output_format): Likewise. + (diagnostic_output_format_init_sarif_stderr): Drop version param + and use default for sarif_generation_options instead. + (diagnostic_output_format_init_sarif_file): Likewise. + (diagnostic_output_format_init_sarif_stream): Likewise. + (make_sarif_sink): Replace version with sarif_gen_opts throughout. + (sarif_generation_options::sarif_generation_options): New. + (selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context): + Replace version with sarif_gen_opts throughout. + (selftest::test_make_location_object): Likewise. + (selftest::test_simple_log): Likewise. + (selftest::test_simple_log_2): Likewise. + (selftest::test_message_with_embedded_link): Likewise. + (selftest::test_message_with_braces): Likewise. + (selftest::test_buffering): Likewise. + (selftest::run_tests_per_version): Replace with... + (selftest::for_each_sarif_gen_option): ...this... + (selftest::run_line_table_case_tests_per_version): ...and this. + (selftest::diagnostic_format_sarif_cc_tests): Update to use + for_each_sarif_gen_option and + run_line_table_case_tests_per_version. + * diagnostic-format-sarif.h (enum class sarif_version): Move lower + down. + (diagnostic_output_format_init_sarif_stderr): Drop "version" + param. + (diagnostic_output_format_init_sarif_file): Likewise. + (diagnostic_output_format_init_sarif_stream): Likewise. + (struct sarif_generation_options): New. + (make_sarif_sink): Add "formatted" param. Replace version param + with sarif_gen_opts. + * diagnostic.cc (diagnostic_output_format_init): Drop hardcoded + sarif_version::v2_1_0 arguments from calls, which instead use + the default ctor for sarif_generation_options internally. + * libgdiagnostics.cc (sarif_sink::sarif_sink): Replace version + param with sarif_gen_opts, and update for changes to + make_sarif_sink. + (diagnostic_manager_add_sarif_sink): Use sarif_gen_opts rather + than version. + * opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise. + Pass "true" for "formatted" param. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + * value-relation.cc (value_relation::swap): New. + (value_relation::negate): Remove. + (dom_oracle::next_relation): New. + (block_relation_iterator::block_relation_iterator): New. + (block_relation_iterator::get_next_relation): New. + (dom_oracle::dump): Use iterator. + * value-relation.h (relation_oracle::next_relation): New. + (dom_oracle::next_relation): New prototype. + (class block_relation_iterator): New. + (FOR_EACH_RELATION_BB): New. + (FOR_EACH_RELATION_NAME): New. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + * range-op-ptr.cc (range_operator::lhs_op1_relation): Add + prange/prange/irange (PPI) default. + (pointer_plus_operator::lhs_op1_relation): New. + * range-op.cc (range_op_handler::lhs_op1_relation): Add RO_PPI case. + * range-op.h (range_op_handler::lhs_op1_relation): Add prototype. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use a + new local variable for intermediate relation results. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): Pass + 'this' as the range-query to the inferred range constructor. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/95801 + * range-op.cc (operator_div::op2_range): New. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/119712 + * value-range.cc (range_bitmask::adjust_range): Delete. + (irange::set_range_from_bitmask): Integrate adjust_range. + (irange::update_bitmask): Do nothing if bitmask doesnt change. + (irange:intersect_bitmask): Do not call adjust_range. Exit if there + is no second bitmask. + * value-range.h (adjust_range): Remove prototype. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + PR tree-optimization/67797 + * tree-tailcall.cc (find_tail_calls): Add support for ERF_RETURNS_ARG. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + * tree-cfg.cc (verify_gimple_cond): Error out if the comparison + throws. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + PR c/119432 + * tree-pretty-print.cc (op_symbol_code): For LROTATE_EXPR, + output __ROTATE_LEFT for gimple. + For RROTATE_EXPR output __ROTATE_RIGHT for gimple. + +2025-04-28 Richard Sandiford <richard.sandiford@arm.com> + + * rtl.h (native_decode_int): Declare. + * simplify-rtx.cc (native_decode_int): New function, split out from... + (native_decode_rtx): ...here. + +2025-04-28 H.J. Lu <hjl.tools@gmail.com> + Uros Bizjak <ubizjak@gmail.com> + + PR target/109780 + PR target/109093 + * config/i386/i386.cc (stack_access_data): New. + (ix86_update_stack_alignment): Likewise. + (ix86_find_all_reg_use_1): Likewise. + (ix86_find_all_reg_use): Likewise. + (ix86_find_max_used_stack_alignment): Also check memory accesses + from registers defined by stack or frame registers. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR ipa/119973 + * tree-ssa-structalias.cc (create_variable_info_for): + Build constraints from DECL_INITIAL directly rather than + the IPA reference list which is incomplete. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR lto/113207 + * ipa-free-lang-data.cc (fld_type_variant): Add extra checking. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/119044 + * tree-predcom.cc (ref_at_iteration): Copy alias info + from the original ref. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/119103 + * tree-ssa-loop-im.cc (in_loop_pipeline): Globalize. + (compute_invariantness): Override costing when we run + right before PRE and PRE is enabled. + (pass_lim::execute): Adjust. + * tree-vect-patterns.cc (vect_determine_precisions_from_users): + For variable shift amounts use range information. + +2025-04-28 Richard Biener <rguenther@suse.de> + + * genmatch.cc (::gen_transform): Add in_place parameter. + Assert it isn't set in unexpected places. + (possible_noop_convert): New. + (expr::gen_transform): Support in_place and emit code to + compute a child in-place when the operation is a conversion. + (dt_simplify::gen_1): Arrange for an outermost conversion + to be elided by generating the transform of the operand + in-place. + * match.pd (__real cepxi (x) -> cos (x)): Use single_use. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR middle-end/60779 + * common.opt (fcx-method=): New, map to flag_complex_method. + (Enum complex_method): New. + (fcx-limited-range): Alias to -fcx-method=limited-range. + (fcx-fortran-rules): Alias to -fcx-medhot=fortran. + * ipa-inline-transform.cc (inline_call): Check flag_complex_method. + * ipa-inline.cc (can_inline_edge_by_limits_p): Likewise. + * opts.cc (finish_options): Adjust. + (set_fast_math_flags): Likewise. + * doc/invoke.texi (fcx-method=): Document. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR middle-end/116083 + * stor-layout.cc (layout_type): Compute TYPE_SIZE and + TYPE_SIZE_UNIT for vector types from the component mode + sizes. + +2025-04-28 Richard Biener <rguenther@suse.de> + + * tree-vect-loop.cc (vect_analyze_loop_operations): Prune + all actual analysis and only fail when we discover a not + SLP covered stmt. + (vect_analyze_loop_2): Remove path trying without SLP. + +2025-04-28 Richard Biener <rguenther@suse.de> + + * tree-vect-loop.cc (vect_loop_kill_debug_uses): Remove. + (maybe_set_vectorized_backedge_value): Likewise. + (vect_transform_loop_stmt): Likewise. Move dump printing + to vect_transform_stmt. + (vect_transform_loop): Remove loop over loop stmts transforming + them, but retain some DCE code still necessary. + * tree-vect-stmts.cc (vect_transform_stmt): Dump that + we're vectorizing a stmt. + +2025-04-28 Richard Biener <rguenther@suse.de> + + * params.opt (--param=vect-force-slp): Remove. + * doc/invoke.texi (--param=vect-force-slp): Likewise. + * tree-vect-loop.cc (vect_analyze_loop_2): Assume + param_vect_force_slp is 1. + * tree-vect-stmts.cc (vect_analyze_stmt): Likewise. + +2025-04-28 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/119493 + * tree-tailcall.cc (find_tail_calls): Handle non-gimple_reg_type + arguments which aren't just passed through for tail recursions + even for non-musttail calls. + +2025-04-28 LIU Hao <lh_mouse@126.com> + + PR target/111107 + * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Copy from sol2.h. + 2025-04-27 H.J. Lu <hjl.tools@gmail.com> PR c/48274 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index bd9df64..e697180 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20250428 +20250429 diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index 443dc6d..ce2f385 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,422 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/111536 + * engine.cc (maybe_update_for_edge): Update for new call_stmt + param to region_model::push_frame. + * program-state.cc (program_state::push_frame): Likewise. + * region-model.cc (region_model::update_for_gcall): Likewise. + (region_model::push_frame): Add "call_stmt" param. + Handle DECL_RESULT with DECL_BY_REFERENCE set on it by stashing + the region of the lhs of the call_stmt in the caller frame, + and writing a reference to it within the "result" in the callee + frame. + (region_model::pop_frame): Don't write back to the LHS for + DECL_BY_REFERENCE results. + (selftest::test_stack_frames): Update for new call_stmt param to + region_model::push_frame. + (selftest::test_get_representative_path_var): Likewise. + (selftest::test_state_merging): Likewise. + (selftest::test_alloca): Likewise. + * region-model.h (region_model::push_frame): Add "call_stmt" + param. + * region.cc: Include "tree-ssa.h". + (region::can_have_initial_svalue_p): Use ssa_defined_default_def_p + for ssa names, rather than special-casing it for just parameters. + This should now also cover DECL_RESULT with DECL_BY_REFERENCE and + hard registers. + * sm-signal.cc (update_model_for_signal_handler): Update for new + call_stmt param to region_model::push_frame. + * state-purge.cc (state_purge_per_decl::process_worklists): + Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/109366 + * region-model-manager.cc + (region_model_manager::maybe_fold_sub_svalue): Sub-values of zero + constants are zero. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/97111 + * analyzer.cc (is_cxa_throw_p): New. + (is_cxa_rethrow_p): New. + * analyzer.opt (Wanalyzer-throw-of-unexpected-type): New. + * analyzer.opt.urls: Regenerate. + * call-info.cc (custom_edge_info::create_enode): New. + * call-info.h (call_info::print): Drop "final". + (call_info::add_events_to_path): Likewise. + * checker-event.cc (event_kind_to_string): Add cases for + event_kind::catch_, event_kind::throw_, and event_kind::unwind. + (explicit_throw_event::print_desc): New. + (throw_from_call_to_external_fn_event::print_desc): New. + (unwind_event::print_desc): New. + * checker-event.h (enum class event_kind): Add catch_, throw_, + and unwind. + (class catch_cfg_edge_event): New. + (class throw_event): New. + (class explicit_throw_event): New. + (class throw_from_call_to_external_fn_event): New. + (class unwind_event): New. + * common.h (class eh_dispatch_cfg_superedge): New forward decl. + (class eh_dispatch_try_cfg_superedge): New forward decl. + (class eh_dispatch_allowed_cfg_superedge): New forward decl. + (custom_edge_info::create_enode): New vfunc decl. + (is_cxa_throw_p): New decl. + (is_cxa_rethrow_p): New decl. + * diagnostic-manager.cc + (diagnostic_manager::add_events_for_superedge): Special-case edges + for eh_dispach_try. + (diagnostic_manager::prune_path): Call consolidate_unwind_events. + (diagnostic_manager::prune_for_sm_diagnostic): Don't filter the new + event_kinds. + (diagnostic_manager::consolidate_unwind_events): New. + * diagnostic-manager.h + (diagnostic_manager::consolidate_unwind_events): New decl. + * engine.cc (exploded_node::on_stmt_pre): Handle "__cxa_throw", + "__cxa_rethrow", and resx statements. + (class throw_custom_edge): New. + (class unwind_custom_edge): New. + (get_eh_outedge): New. + (exploded_graph::unwind_from_exception): New. + (exploded_node::on_throw): New. + (exploded_node::on_resx): New. + (exploded_graph::get_or_create_node): Add "add_to_worklist" param + and use it. + (exploded_graph::process_node): Use edge_info's create_enode vfunc + to create enodes, rather than calling get_or_create_node directly. + Ignore CFG edges in the sgraph flagged with EH whilst we're + exploring the egraph. + (exploded_graph_annotator::print_enode): Handle case + exploded_node::status::special. + * exploded-graph.h (exploded_node::status): Add value "special". + (exploded_node::on_throw): New decl. + (exploded_node::on_resx): New decl. + (exploded_graph::get_or_create_node): Add optional + "add_to_worklist" param. + (exploded_graph::unwind_from_exception): New decl. + * kf-lang-cp.cc (class kf_cxa_allocate_exception): New. + (class kf_cxa_begin_catch): New. + (class kf_cxa_end_catch): New. + (class throw_of_unexpected_type): New. + (class kf_cxa_call_unexpected): New. + (register_known_functions_lang_cp): Register known functions + "__cxa_allocate_exception", "__cxa_begin_catch", + "__cxa_end_catch", and "__cxa_call_unexpected". + * kf.cc (class kf_eh_pointer): New. + (register_known_functions): Register it for BUILT_IN_EH_POINTER. + * region-model.cc: Include "analyzer/function-set.h". + (exception_node::operator==): New. + (exception_node::dump_to_pp): New. + (exception_node::dump): New. + (exception_node::to_json): New. + (exception_node::make_dump_widget): New. + (exception_node::maybe_get_type): New. + (exception_node::add_to_reachable_regions): New. + (region_model::region_model): Initialize + m_thrown_exceptions_stack and m_caught_exceptions_stack. + (region_model::operator=): Likewise. + (region_model::operator==): Compare them. + (region_model::dump_to_pp): Dump exception stacks. + (region_model::to_json): Add exception stacks. + (region_model::make_dump_widget): Likewise. + (class exception_thrown_from_unrecognized_call): New. + (get_fns_assumed_not_to_throw): New. + (can_throw_p): New. + (region_model::check_for_throw_inside_call): New. + (region_model::on_call_pre): Call check_for_throw_inside_call + on unknown fns or those we don't have a body for. + (region_model::maybe_update_for_edge): Handle eh_dispatch_stmt + statements. Drop old code that called + apply_constraints_for_exception on EDGE_EH edges. + (class rejected_eh_dispatch): New. + (exception_matches_type_p): New. + (matches_any_exception_type_p): New. + (region_model::apply_constraints_for_eh_dispatch): New. + (region_model::apply_constraints_for_eh_dispatch_try): New. + (region_model::apply_constraints_for_eh_dispatch_allowed): New. + (region_model::apply_constraints_for_exception): Delete. + (region_model::can_merge_with_p): Don't merge models with + non-equal exception stacks. + (region_model::get_referenced_base_regions): Add regions from + exception stacks. + * region-model.h (struct exception_node): New. + (region_model::push_thrown_exception): New. + (region_model::get_current_thrown_exception): New. + (region_model::pop_thrown_exception): New. + (region_model::push_caught_exception): New. + (region_model::get_current_caught_exception): New. + (region_model::pop_caught_exception): New. + (region_model::apply_constraints_for_eh_dispatch_try): New decl. + (region_model::apply_constraints_for_eh_dispatch_allowed) New decl. + (region_model::apply_constraints_for_exception): Delete. + (region_model::apply_constraints_for_eh_dispatch): New decl. + (region_model::check_for_throw_inside_call): New decl. + (region_model::m_thrown_exceptions_stack): New field. + (region_model::m_caught_exceptions_stack): New field. + * supergraph.cc: Include "except.h" and "analyzer/region-model.h". + (supergraph::add_cfg_edge): Special-case eh_dispatch edges. + (superedge::get_description): Use default_tree_printer. + (get_catch): New. + (eh_dispatch_cfg_superedge::make): New. + (eh_dispatch_cfg_superedge::eh_dispatch_cfg_superedge): New. + (eh_dispatch_cfg_superedge::get_eh_status): New. + (eh_dispatch_try_cfg_superedge::dump_label_to_pp): New. + (eh_dispatch_try_cfg_superedge::apply_constraints): New. + (eh_dispatch_allowed_cfg_superedge::eh_dispatch_allowed_cfg_superedge): + New. + (eh_dispatch_allowed_cfg_superedge::dump_label_to_pp): New. + (eh_dispatch_allowed_cfg_superedge::apply_constraints): New. + * supergraph.h: Include "except.h". + (superedge::dyn_cast_eh_dispatch_cfg_superedge): New vfunc. + (superedge::dyn_cast_eh_dispatch_try_cfg_superedge): New vfunc. + (superedge::dyn_cast_eh_dispatch_allowed_cfg_superedge): New + vfunc. + (class eh_dispatch_cfg_superedge): New. + (is_a_helper <const eh_dispatch_cfg_superedge *>::test): New. + (class eh_dispatch_try_cfg_superedge): New. + (is_a_helper <const eh_dispatch_try_cfg_superedge *>::test): New. + (class eh_dispatch_allowed_cfg_superedge): New. + (is_a_helper <const eh_dispatch_allowed_cfg_superedge *>::test): + New. + * svalue.cc (svalue::maybe_get_type_from_typeinfo): New. + * svalue.h (svalue::maybe_get_type_from_typeinfo): New decl. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * access-diagram.cc: Replace uses of ::make_unique with + std::make_unique. + * analyzer.cc: Likewise. + * bounds-checking.cc: Likewise. + * call-details.cc: Likewise. + * call-info.cc: Likewise. + * call-string.cc: Likewise. + * checker-path.cc: Likewise. + * common.h: Drop include of "make-unique.h". + * constraint-manager.cc: Replace uses of ::make_unique with + std::make_unique. + * diagnostic-manager.cc: Likewise. + * engine.cc: Likewise. + * infinite-loop.cc: Likewise. + * infinite-recursion.cc: Likewise. + * kf-analyzer.cc: Likewise. + * kf-lang-cp.cc: Likewise. + * kf.cc: Likewise. + * pending-diagnostic.cc: Likewise. + * program-point.cc: Likewise; drop #include. + * program-state.cc: Likewise. + * ranges.cc: Likewise. + * region-model.cc: Likewise. + * region.cc: Likewise; drop #include. + * sm-fd.cc: Likewise. + * sm-file.cc: Likewise. + * sm-malloc.cc: Likewise. + * sm-pattern-test.cc: Likewise. + * sm-sensitive.cc: Likewise. + * sm-signal.cc: Likewise. + * sm-taint.cc: Likewise. + * sm.cc: Likewise. + * store.cc: Likewise. + * supergraph.cc: Likewise. + * svalue.cc: Likewise; drop #include. + * varargs.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * engine.cc (class plugin_analyzer_init_impl): Convert + "m_checkers" to use std::vector of std::unique_ptr. Convert + "m_known_fn_mgr" to a reference. + (impl_run_checkers): Convert "checkers" to use std::vector of + std::unique_ptr and move it into the extrinsic_state. + * program-state.cc (extrinsic_state::dump_to_pp): Update for + changes to m_checkers. + (extrinsic_state::to_json): Likewise. + (extrinsic_state::get_sm_idx_by_name): Likewise. + (selftest::test_sm_state_map): Update to use std::unique_ptr + for state machines. + (selftest::test_program_state_1): Likewise. + (selftest::test_program_state_2): Likewise. + (selftest::test_program_state_merging): Likewise. + (selftest::test_program_state_merging_2): Likewise. + * program-state.h (class extrinsic_state): Convert "m_checkers" to + use std::vector of std::unique_ptr and to be owned by this object, + rather than a reference. Add ctor for use in selftests. + * sm-fd.cc (make_fd_state_machine): Update to use std::unique_ptr. + * sm-file.cc (make_fileptr_state_machine): Likewise. + * sm-malloc.cc (make_malloc_state_machine): Likewise. + * sm-pattern-test.cc (make_pattern_test_state_machine): Likewise. + * sm-sensitive.cc (make_sensitive_state_machine): Likewise. + * sm-signal.cc (make_signal_state_machine): Likewise. + * sm-taint.cc (make_taint_state_machine): Likewise. + * sm.cc: Define INCLUDE_LIST. + (make_checkers): Return the vector directly, rather than pass it + in by reference. Update to use std::unique_ptr throughout. Use + an intermediate list, and use that to filter with + flag_analyzer_checker, fixing memory leak for this case. + * sm.h: (make_checkers): Return the vector directly, rather than + pass it in by reference, and use std::vector of std::unique_ptr. + (make_malloc_state_machine): Convert return type to use std::unique_ptr. + (make_fileptr_state_machine): Likewise. + (make_taint_state_machine): Likewise. + (make_sensitive_state_machine): Likewise. + (make_signal_state_machine): Likewise. + (make_pattern_test_state_machine): Likewise. + (make_va_list_state_machine): Likewise. + (make_fd_state_machine): Likewise. + * varargs.cc (make_va_list_state_machine): Update to use + std::unique_ptr. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * call-summary.cc (call_summary_replay::call_summary_replay): + Convert "summary" from call_summary * to call_summary &. + (call_summary_replay::dump_to_pp): Likewise for m_summary. + * call-summary.h (call_summary_replay::call_summary_replay): + Likewise for "summary". + (call_summary_replay::m_summary): Likewise. + * engine.cc (call_summary_edge_info::call_summary_edge_info): + Likewise. + (call_summary_edge_info::update_state): Likewise. + (call_summary_edge_info::update_model): Likewise. + (call_summary_edge_info::print_desc): Likewise for m_summary. + (call_summary_edge_info::m_summary): Likewise. + (exploded_node::replay_call_summaries): Update for change to + replay_call_summary. + (exploded_node::replay_call_summary): Convert "summary" from + call_summary * to call_summary &. + * exploded-graph.h (exploded_node::replay_call_summary): Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * analyzer.cc: Convert gcall * to gcall & where we know the + pointer must be non-null. + * call-details.cc: Likewise. + * call-details.h: Likewise. + * call-info.cc: Likewise. + * call-info.h: Likewise. + * call-summary.h: Likewise. + * checker-event.cc: Likewise. + * checker-event.h: Likewise. + * common.h: Likewise. + * diagnostic-manager.cc: Likewise. + * engine.cc: Likewise. + * exploded-graph.h: Likewise. + * kf-analyzer.cc: Likewise. + * kf-lang-cp.cc: Likewise. + * kf.cc: Likewise. + * known-function-manager.cc: Likewise. + * program-state.cc: Likewise. + * program-state.h: Likewise. + * region-model.cc: Likewise. + * region-model.h: Likewise. + * sm-fd.cc: Likewise. + * sm-file.cc: Likewise. + * sm-malloc.cc: Likewise. + * sm-sensitive.cc: Likewise. + * sm-signal.cc: Likewise. + * sm-taint.cc: Likewise. + * sm.h: Likewise. + * store.cc: Likewise. + * store.h: Likewise. + * supergraph.cc: Likewise. + * supergraph.h: Likewise. + * svalue.h: Likewise. + * varargs.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * access-diagram.cc: Convert enum access_direction to + "enum class". + * bounds-checking.cc: Likewise. + * checker-event.cc: Convert enum event_kind to "enum class". + * checker-event.h: Likewise. + * checker-path.cc: Likewise. + * common.h: Convert enum access_direction to "enum class". + * constraint-manager.cc: Convert enum bound_kind to "enum class". + * constraint-manager.h: Likewise. + * diagnostic-manager.cc: Convert enum event_kind to "enum class". + * engine.cc: Convert enum status to "enum class". + * exploded-graph.h: Likewise. + * infinite-loop.cc: Likewise. + * kf-lang-cp.cc: Convert enum poison_kind to "enum class". + * kf.cc: Likewise. + * region-model-manager.cc: Likewise. + * region-model.cc: Likewise; also for enum access_direction. + * svalue.cc: Likewise. + * svalue.h: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * analyzer.h: Rename to... + * common.h: ...this. Add define of INCLUDE_VECTOR, includes of + "config.h", "system.h", "coretypes.h", "make-unique.h", "tree.h", + "function.h", "basic-block.h", "gimple.h", "options.h", + "bitmap.h", "diagnostic-core.h", and "diagnostic-path.h". + * access-diagram.h: Don't include "analyzer/analyzer.h". + * access-diagram.cc: Reorganize includes to #include + "analyzer/common.h" first, then group by subsystem, dropping + redundant headers. + * analysis-plan.cc: Likewise. + * analyzer-language.cc: Likewise. + * analyzer-pass.cc: Likewise. + * analyzer-selftests.cc: Likewise. + * analyzer.cc: Likewise. + * bounds-checking.cc: Likewise. + * call-details.cc: Likewise. + * call-info.cc: Likewise. + * call-string.cc: Likewise. + * call-summary.cc: Likewise. + * checker-event.cc: Likewise. + * checker-path.cc: Likewise. + * complexity.cc: Likewise. + * constraint-manager.cc: Likewise. + * diagnostic-manager.cc: Likewise. + * engine.cc: Likewise. + * feasible-graph.cc: Likewise. + * infinite-loop.cc: Likewise. + * infinite-recursion.cc: Likewise. + * kf-analyzer.cc: Likewise. + * kf-lang-cp.cc: Likewise. + * kf.cc: Likewise. + * known-function-manager.cc: Likewise. + * pending-diagnostic.cc: Likewise. + * program-point.cc: Likewise. + * program-state.cc: Likewise. + * ranges.cc: Likewise. + * record-layout.cc: Likewise. + * region-model-asm.cc: Likewise. + * region-model-manager.cc: Likewise. + * region-model-reachability.cc: Likewise. + * region-model.cc: Likewise. + * region.cc: Likewise. + * sm-fd.cc: Likewise. + * sm-file.cc: Likewise. + * sm-malloc.cc: Likewise. + * sm-pattern-test.cc: Likewise. + * sm-sensitive.cc: Likewise. + * sm-signal.cc: Likewise. + * sm-taint.cc: Likewise. + * sm.cc: Likewise. + * state-purge.cc: Likewise. + * store.cc: Likewise. + * supergraph.cc: Likewise. + * svalue.cc: Likewise. + * symbol.cc: Likewise. + * trimmed-graph.cc: Likewise. + * varargs.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * region-model.cc (region_model::on_stmt_pre): Use internal_error + if we see an unexpected gimple stmt code. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * call-details.cc (call_details::dump): New overload. + (call_details::make_dump_widget): New. + * call-details.h (call_details::dump): Declare new overload. + (call_details::make_dump_widget): New decl. + 2025-03-14 Jakub Jelinek <jakub@redhat.com> PR analyzer/119278 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 732b2c9..1572c8b 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,20 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * c-pretty-print.cc: Drop include of "make-unique.h". + Replace uses of ::make_unique with std::make_unique. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * name-hint.h (name_hint::name_hint): Use std::unique_ptr for + param. + +2025-04-28 Lewis Hyatt <lhyatt@gmail.com> + + PR c/118838 + * c-lex.cc (cb_def_pragma): Call cpp_get_diagnostic_override_loc() + to get a valid location at which to issue -Wunknown-pragmas, in case + it was triggered from a _Pragma. + 2025-04-25 Jason Merrill <jason@redhat.com> * c-opts.cc (c_common_post_options): Bump default ABI to 21 diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index c8f9206..4c8fde7 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,31 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * c-decl.cc: Drop include of "make-unique.h". + Replace uses of ::make_unique with std::make_unique. + * c-objc-common.cc: Likewise. + * c-parser.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * c-decl.cc: Include "make-unique.h". + (lookup_name_fuzzy): Use ::make_unique rather than "new" when + making suggest_missing_header and suggest_missing_option. + * c-parser.cc: Include "make-unique.h" + (c_parser_error_richloc): Use ::make_unique rather than "new" when + making suggest_missing_header. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + PR c/119432 + * gimple-parser.cc (gimple_binary_identifier_code): Add + __ROTATE_LEFT and __ROTATE_RIGHT. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + * gimple-parser.cc (gimple_binary_identifier_code): New variable. + (c_parser_gimple_binary_expression): Use gimple_binary_identifier_code + instead of doing if statements on the strings. + 2025-04-27 H.J. Lu <hjl.tools@gmail.com> PR c/48274 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9d5db06..480e9c4 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,38 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * parser.cc: Include "analyzer/analyzer-language.h". + (ana::cp_translation_unit): New class. + (cp_parser_translation_unit): Add call to + ana::on_finish_translation_unit. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * cxx-pretty-print.cc: Drop include of "make-unique.h". + Replace uses of ::make_unique with std::make_unique. + * error.cc: Likewise. + * name-lookup.cc: Likewise. + * parser.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * name-lookup.cc: Include "make-unique.h". + (namespace_hints::convert_candidates_to_name_hint): Use + ::make_unique rather than "new" when making + show_candidate_location and suggest_alternatives. + (namespace_hints::maybe_decorate_with_limit): Likewise when making + namespace_limit_reached. + (suggest_alternatives_for_1): Likewise when making + suggest_missing_option. + (maybe_suggest_missing_std_header): Likewise when making + missing_std_header. + (macro_use_before_def::maybe_make): Use std::unique_ptr. + (macro_use_before_def::macro_use_before_def): Make public. + (lookup_name_fuzzy): Use ::make_unique rather than "new" when + making suggest_missing_header. + * parser.cc: Include "make-unique.h". + (cp_parser_error_1): Use ::make_unique rather than "new" when + making suggest_missing_header. + 2025-04-27 Nathaniel Shead <nathanieloshead@gmail.com> PR c++/119939 diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog index f0b70c2..adee3de 100644 --- a/gcc/jit/ChangeLog +++ b/gcc/jit/ChangeLog @@ -1,3 +1,8 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * dummy-frontend.cc: Drop include of "make-unique.h". + Replace uses of ::make_unique with std::make_unique. + 2025-03-29 Iain Sandoe <iain@sandoe.co.uk> * libgccjit.exports: Add symbols for ABI 28 to 34. diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog index 453b9f7..5cb9311 100644 --- a/gcc/rust/ChangeLog +++ b/gcc/rust/ChangeLog @@ -1,3 +1,356 @@ +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * checks/errors/borrowck/rust-bir-place.h + (IndexVec::size_type): Add. + (IndexVec::MAX_INDEX): Add. + (IndexVec::size): Change the return type to the type of the + internal value used by the index type. + (PlaceDB::lookup_or_add_variable): Use the return value from the + PlaceDB::add_place call. + * checks/errors/borrowck/rust-bir.h + (struct BasicBlockId): Move this definition before the + definition of the struct Function. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit visibility. + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * ast/rust-ast-visitor.cc + (DefaultASTVisitor::visit): Visit the loop labels of + WhileLetLoopExpr instances before visiting their scrutinee + expressions. + * resolve/rust-early-name-resolver-2.0.cc + (Early::resolve_glob_import): Pass the glob import's path + directly to NameResolutionContext::resolve_path. + * resolve/rust-toplevel-name-resolver-2.0.cc + (TopLevel::visit): Remove unnecessary call to + Identifier::as_string. + (flatten_glob): Improve handling of cases where a glob use tree + has no path. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * expand/rust-derive-clone.cc (DeriveClone::clone_enum_struct): Clone + path to avoid using the same nodeid. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit_function_params): + Add specialized function to visit function parameters. + (DefaultASTVisitor::visit): Remove parameter visit and call specialized + function instead. + * ast/rust-ast-visitor.h: Add function prototye. + * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Remove + function. + (Late::visit_function_params): Override specialized visit function. + * resolve/rust-late-name-resolver-2.0.h: Add overriden function + prototype. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * resolve/rust-name-resolution-context.h: Use BindingLayer instead. + * resolve/rust-name-resolution-context.cc (BindingLayer::BindingLayer): + Add new constructor for binding layer. + (BindingLayer::bind_test): Add a function to test a binding constraint. + (BindingLayer::push): Push a new binding group. + (BindingLayer::and_binded): Add function to test and-binding + constraint. + (BindingLayer::or_binded): Add function to test or-binding constraints. + (BindingLayer::insert_ident): Insert a new identifier in the current + binding group. + (BindingLayer::merge): Merge current binding group with it's parent. + (BindingLayer::get_source): Get the source of the current binding + group. + * resolve/rust-late-name-resolver-2.0.cc: Use stacked context for + binding group. + * util/rust-stacked-contexts.h: Add mutable peek function. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Add binding + creation in visitor. + * resolve/rust-late-name-resolver-2.0.h: Add function prototypes. + * resolve/rust-name-resolution-context.h: Add binding context. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * resolve/rust-name-resolution-context.h (struct Binding): Add Binding + struct to differentiate Or and Product bindings in patterns. + (enum class): Add Binding kind. + (class BindingContext): Add binding context with Binding stack. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast.h: Add hash function. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast.h: Add equality operator. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * resolve/rust-default-resolver.cc (DefaultResolver::visit): Add visit + function for TypeParam. + * resolve/rust-default-resolver.h: Add function prototype. + * resolve/rust-forever-stack.h: Add function to check for forward + declaration ban. + * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Check forward + declarations. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast-collector.cc (TokenCollector::visit): Remove error kind + and change function call. + * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Change call name. + * ast/rust-path.cc (ConstGenericParam::as_string): Likewise. + * ast/rust-path.h: Remove error kind. + * hir/rust-ast-lower-type.cc (ASTLowerGenericParam::visit): Change call + name. + * parse/rust-parse-impl.h (Parser::parse_generic_param): Use optional + on parsing failure. + (Parser::parse_generic_arg): Likewise. + (Parser::parse_path_generic_args): Likewise. + * parse/rust-parse.h: Likewise. + * resolve/rust-ast-resolve-type.h: Change call name. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Change error + message. + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * resolve/rust-early-name-resolver-2.0.cc + (Early::build_import_mapping): Avoid outputting an "unresolved + import" error if other errors are outputted during resolution. + * resolve/rust-early-name-resolver-2.0.h + (Early::resolve_path_in_all_ns): Collect path resolution errors + while avoiding duplicate errors for resolutions in each + namespace. + * resolve/rust-forever-stack.h + (ForeverStack::resolve_path): Add parameter for collecting + errors. + (ForeverStack::find_starting_point): Likewise. + (ForeverStack::resolve_segments): Likewise. + * resolve/rust-forever-stack.hxx + (check_leading_kw_at_start): Likewise. + (ForeverStack::find_starting_point): Likewise. + (ForeverStack::resolve_segments): Likewise. + (ForeverStack::resolve_path): Likewise. + * resolve/rust-name-resolution-context.h + (NameResolutionContext::resolve_path): Add optional parameter + for collecting errors. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * backend/rust-compile-expr.cc (CompileExpr::array_copied_expr): prealloc the vector + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): add guard + * expand/rust-expand-visitor.cc (ExpandVisitor::visit): add guard + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * resolve/rust-ast-resolve-path.cc + (ResolvePath::resolve_path): Adjust error messages. + * resolve/rust-ast-resolve-type.cc + (ResolveRelativeTypePath::go): Likewise. + * resolve/rust-forever-stack.hxx + (check_leading_kw_at_start): Likewise. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): fix bad assertion + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * resolve/rust-forever-stack.hxx + (ForeverStack::resolve_path): Pass instance of Node to lambda by + reference instead of by value. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * typecheck/rust-hir-type-check-struct-field.h: keep reference to parent expression + * typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::TypeCheckStructExpr): + update ctor + (TypeCheckStructExpr::resolve): remove bad rust_fatal_errors + (TypeCheckStructExpr::visit): cleanup errors + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * resolve/rust-late-name-resolver-2.0.cc + (Late::visit): Handle StructPatternFieldIdent. + * resolve/rust-late-name-resolver-2.0.h + (Late::visit): Likewise. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast-collector.cc (TokenCollector::visit): Dump llvm inline + asm tokens. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast-collector.cc (TokenCollector::visit): Remove unreachable + code. + * ast/rust-expr.h (struct LlvmOperand): Add LlvmOperand struct to + represent input and outputs. + (class LlvmInlineAsm): Add input, output and clobber operands. + (struct TupleTemplateStr): Add locus getter. + * backend/rust-compile-block.h: Add visit for LlvmInlineAsm. + * backend/rust-compile-expr.cc (CompileExpr::visit): Add llvm inline + asm stmt compilation. + * backend/rust-compile-expr.h: Add function prototype. + * backend/rust-compile-asm.h (class CompileLlvmAsm): Add llvm asm hir + not to gimple. + * backend/rust-compile-asm.cc (CompileLlvmAsm::CompileLlvmAsm): Add + constructor. + (CompileLlvmAsm::construct_operands): Add function to construct operand + tree. + (CompileLlvmAsm::construct_clobbers): Add function to construct clobber + tree. + (CompileLlvmAsm::tree_codegen_asm): Generate the whole tree for a given + llvm inline assembly node. + * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc (ExprStmtBuilder::visit): + Add visit function. + * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Add function + prototype. + * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h: Add visit + function. + * checks/errors/borrowck/rust-bir-builder-struct.h: Likewise. + * checks/errors/borrowck/rust-function-collector.h: Likewise. + * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): + Likewise. + * checks/errors/privacy/rust-privacy-reporter.h: Add visit function + prototype. + * checks/errors/rust-const-checker.cc (ConstChecker::visit): Add visit + function. + * checks/errors/rust-const-checker.h: Add visit function prototype. + * checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::visit): + Add visit function. + * checks/errors/rust-hir-pattern-analysis.h: Add visit function + prototype. + * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Add + visit function. + * checks/errors/rust-unsafe-checker.h: Add function prototype. + * expand/rust-macro-builtins-asm.cc (parse_llvm_templates): Parse + templates. + (parse_llvm_arguments): Add function to parse non template tokens. + (parse_llvm_operands): Add function to parse operands, either input or + output. + (parse_llvm_outputs): Add function to parse and collect llvm asm + outputs. + (parse_llvm_inputs): Likewise with inputs. + (parse_llvm_clobbers): Add function to parse llvm asm clobbers. + (parse_llvm_options): Add function to parse llvm asm options. + (parse_llvm_asm): Add function to parse llvm asm. + * expand/rust-macro-builtins-asm.h (class LlvmAsmContext): Add context + for llvm asm parser. + (parse_llvm_outputs): Add function prototype. + (parse_llvm_inputs): Likewise. + (parse_llvm_clobbers): Likewise. + (parse_llvm_options): Likewise. + * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Lower AST llvm + asm node to HIR. + * hir/rust-ast-lower-expr.h: Add function prototype. + * hir/rust-hir-dump.cc (Dump::visit): Add visit function. + * hir/rust-hir-dump.h: Add function prototype. + * hir/tree/rust-hir-expr-abstract.h: Add HIR llvm asm node kind. + * hir/tree/rust-hir-expr.h (struct LlvmOperand): Add LlvmOperand type + to represent input and outputs. + (class LlvmInlineAsm): Add LlvmInlineAsm hir node. + * hir/tree/rust-hir-full-decls.h (class LlvmInlineAsm): Add + LlvmInlineAsm hir node forward declaration. + * hir/tree/rust-hir-visitor.h: Add visit functions for LlvmInlineAsm + hir node. + * hir/tree/rust-hir.cc (LlvmInlineAsm::accept_vis): Add hir node + visitor related functions. + * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit): + Type check input and output operands. + * typecheck/rust-hir-type-check-expr.h: Add function prototype. + * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Visit input and + output operand expressions. + * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Resolve input + and output expressions. + * resolve/rust-ast-resolve-expr.h: Add function prototypes. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * ast/rust-ast-collector.cc (TokenCollector::visit): Make visitor + unreachable. + * ast/rust-ast-collector.h: Add visit for LlvmInlineAsmNode. + * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Add visit + function for the default ast visitor. + * ast/rust-ast-visitor.h: Add function prototype. + * ast/rust-ast.cc (LlvmInlineAsm::accept_vis): Add accept_vis to + LlvmInlineAsm node. + * ast/rust-ast.h: Add LlvmInlineAsm node kind. + * ast/rust-expr.h (class LlvmInlineAsm): Add LlvmInlineAsm node. + * expand/rust-derive.h: Add visit function for LlvmInlineAsm node. + * expand/rust-macro-builtins-asm.cc (MacroBuiltin::llvm_asm_handler): + Add handler for llvm inline assembly nodes. + (parse_llvm_asm): Add function to parse llvm assembly nodes. + * expand/rust-macro-builtins-asm.h (parse_llvm_asm): Add function + prototypes. + * expand/rust-macro-builtins.cc (inline_llvm_asm_maker): Add macro + transcriber. + * expand/rust-macro-builtins.h: Add transcriber function prototype. + * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Add visit + function for LlvmInlineAsm node. + * hir/rust-ast-lower-base.h: Add visit function prototype. + * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Add visit + function for LlvmInlineAsm node. + * resolve/rust-ast-resolve-base.h: Add visit function prototype. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * expand/rust-macro-builtins-asm.cc (parse_asm_arg): Emit error + message. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): add diagnostic + * typecheck/rust-tyty.cc (BaseType::contains_infer): new helper to grab first infer var + * typecheck/rust-tyty.h: prototype + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust-gcc.cc (arithmetic_or_logical_expression): Ensure this is an integer + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * hir/rust-hir-dump.cc (Dump::visit): add guard for optional label + +2025-04-28 Yap Zhi Heng <yapzhhg@gmail.com> + + * typecheck/rust-tyty.h: Remove extra redundant comment. + * typecheck/rust-hir-type-check-base.cc: Update comment on repr + handling. + +2025-04-28 Zhi Heng <yapzhhg@gmail.com> + + * typecheck/rust-hir-type-check-base.cc: Set enum representing + type properly if repr is an integer type. + * typecheck/rust-hir-type-check-item.cc: Update comments. + +2025-04-28 Zhi Heng <yapzhhg@gmail.com> + + * typecheck/rust-tyty.h: Add new `ReprKind` enum to + `ReprOptions`. + * typecheck/rust-hir-type-check-base.cc: Handle setting of + `repr_kind`. + * typecheck/rust-hir-type-check-item.cc: New check for + zero-variant enums. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): add null check + * hir/tree/rust-hir-item.h: add has_type helper + * typecheck/rust-hir-trait-resolve.cc (TraitItemReference::resolve_item): + add missing type checking + 2025-04-14 Arthur Cohen <arthur.cohen@embecosm.com> * util/rust-lang-item.h: Add new manually_drop lang item. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 314de8d..053765b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,315 @@ +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/111536 + * c-c++-common/analyzer/hard-reg-1.c: New test. + * g++.dg/analyzer/nrvo-1.C: New test. + * g++.dg/analyzer/nrvo-2.C: New test. + * g++.dg/analyzer/nrvo-pr111536-1.C: New test. + * g++.dg/analyzer/nrvo-pr111536-1b.C: New test. + * g++.dg/analyzer/nrvo-pr111536-2.C: New test. + * g++.dg/analyzer/nrvo-pr111536-2b.C: New test. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/109366 + * g++.dg/analyzer/unique_ptr-1.C: New test. + * g++.dg/analyzer/unique_ptr-2.C: New test. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + PR analyzer/97111 + * c-c++-common/analyzer/analyzer-verbosity-2a.c: Add + -fno-exceptions. + * c-c++-common/analyzer/analyzer-verbosity-3a.c: Likewise. + * c-c++-common/analyzer/attr-const-2.c: Add + __attribute__((nothrow)). + * c-c++-common/analyzer/attr-malloc-4.c: Likewise. + * c-c++-common/analyzer/attr-malloc-5.c: Likewise. + * c-c++-common/analyzer/attr-malloc-6.c: Add -fno-exceptions. + * c-c++-common/analyzer/attr-malloc-CVE-2019-19078-usb-leak.c: + Likewise. + * c-c++-common/analyzer/attr-malloc-exception.c: New test. + * c-c++-common/analyzer/call-summaries-pr107158-2.c: Add + -fno-exceptions. + * c-c++-common/analyzer/call-summaries-pr107158.c: Likewise. + * c-c++-common/analyzer/capacity-2.c: Likewise. + * c-c++-common/analyzer/coreutils-sum-pr108666.c: Likewise. + * c-c++-common/analyzer/data-model-22.c: Likewise. + * c-c++-common/analyzer/data-model-5d.c: Likewise. + * c-c++-common/analyzer/deref-before-check-pr108455-git-pack-revindex.c: + Likewise. + * c-c++-common/analyzer/deref-before-check-pr108475-haproxy-tcpcheck.c: + Likewise. + * c-c++-common/analyzer/edges-2.c: Likewise. + * c-c++-common/analyzer/fd-2.c: Likewise. + * c-c++-common/analyzer/fd-3.c: Likewise. + * c-c++-common/analyzer/fd-meaning.c: Likewise. + * c-c++-common/analyzer/file-1.c: Likewise. + * c-c++-common/analyzer/file-3.c: Likewise. + * c-c++-common/analyzer/file-meaning-1.c: Likewise. + * c-c++-common/analyzer/infinite-recursion.c: Likewise. + * c-c++-common/analyzer/leak-3.c: Likewise. + * c-c++-common/analyzer/malloc-dedupe-1.c: Likewise. + * c-c++-common/analyzer/malloc-in-loop.c: Likewise. + * c-c++-common/analyzer/malloc-many-paths-3.c: Likewise. + * c-c++-common/analyzer/malloc-paths-5.c: Likewise. + * c-c++-common/analyzer/malloc-paths-7.c: Likewise. + * c-c++-common/analyzer/malloc-paths-8.c: Likewise. + * c-c++-common/analyzer/malloc-vs-local-1a.c: Likewise. + * c-c++-common/analyzer/malloc-vs-local-2.c: Likewise. + * c-c++-common/analyzer/malloc-vs-local-3.c: Likewise. + * c-c++-common/analyzer/paths-7.c: Likewise. + * c-c++-common/analyzer/pr110830.c: Likewise. + * c-c++-common/analyzer/pr93032-mztools-simplified.c: Likewise. + * c-c++-common/analyzer/pr93355-localealias-feasibility-3.c: + Likewise. + * c-c++-common/analyzer/pr93355-localealias-simplified.c: + Likewise. + * c-c++-common/analyzer/pr96650-1-trans.c: Likewise. + * c-c++-common/analyzer/pr97072.c: Add __attribute__((nothrow)). + * c-c++-common/analyzer/pr98575-1.c: Likewise. + * c-c++-common/analyzer/pr99716-1.c: Add -fno-exceptions. + * c-c++-common/analyzer/pr99716-2.c: Likewise. + * c-c++-common/analyzer/pr99716-3.c: Likewise. + * c-c++-common/analyzer/pragma-2.c: Likewise. + * c-c++-common/analyzer/rhbz1878600.c: Likewise. + * c-c++-common/analyzer/strndup-1.c: Likewise. + * c-c++-common/analyzer/write-to-string-literal-4-disabled.c: + Likewise. + * c-c++-common/analyzer/write-to-string-literal-4.c: Likewise. + * c-c++-common/analyzer/write-to-string-literal-5.c: Likewise. + * c-c++-common/analyzer/zlib-5.c: Likewise. + * g++.dg/analyzer/exception-could-throw-1.C: New test. + * g++.dg/analyzer/exception-could-throw-2.C: New test. + * g++.dg/analyzer/exception-dynamic-spec.C: New test. + * g++.dg/analyzer/exception-leak-1.C: New test. + * g++.dg/analyzer/exception-leak-2.C: New test. + * g++.dg/analyzer/exception-leak-3.C: New test. + * g++.dg/analyzer/exception-leak-4.C: New test. + * g++.dg/analyzer/exception-leak-5.C: New test. + * g++.dg/analyzer/exception-leak-6.C: New test. + * g++.dg/analyzer/exception-nothrow.C: New test. + * g++.dg/analyzer/exception-path-1.C: New test. + * g++.dg/analyzer/exception-path-catch-all-1.C: New test. + * g++.dg/analyzer/exception-path-catch-all-2.C: New test. + * g++.dg/analyzer/exception-path-unwind-multiple-2.C: New test. + * g++.dg/analyzer/exception-path-unwind-multiple.C: New test. + * g++.dg/analyzer/exception-path-unwind-single.C: New test. + * g++.dg/analyzer/exception-path-with-cleanups.C: New test. + * g++.dg/analyzer/exception-rethrow-1.C: New test. + * g++.dg/analyzer/exception-rethrow-2.C: New test. + * g++.dg/analyzer/exception-stack-1.C: New test. + * g++.dg/analyzer/exception-stack-2.C: New test. + * g++.dg/analyzer/exception-subclass-1.C: New test. + * g++.dg/analyzer/exception-subclass-2.C: New test. + * g++.dg/analyzer/exception-value-1.C: New test. + * g++.dg/analyzer/exception-value-2.C: New test. + * g++.dg/analyzer/fno-exception.C: New test. + * g++.dg/analyzer/pr94028.C: Drop xfail. + * g++.dg/analyzer/std-unexpected.C: New test. + * g++.dg/coroutines/pr105287.C: Drop dg-excess-errors. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * gcc.dg/plugin/analyzer_cpython_plugin.cc: Drop include of + "make-unique.h". Replace uses of ::make_unique with + std::make_unique. + * gcc.dg/plugin/analyzer_gil_plugin.cc: Likewise. + * gcc.dg/plugin/analyzer_kernel_plugin.cc: Likewise. + * gcc.dg/plugin/analyzer_known_fns_plugin.cc: Likewise. + * gcc.dg/plugin/diagnostic_group_plugin.cc: Likewise. + * gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc: Likewise. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * gcc.dg/plugin/analyzer_gil_plugin.cc: Convert gcall * to gcall & + where we know the pointer must be non-null. + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * gcc.dg/plugin/analyzer_cpython_plugin.cc: Convert + enum poison_kind to "enum class". + +2025-04-28 David Malcolm <dmalcolm@redhat.com> + + * gcc.dg/plugin/analyzer_cpython_plugin.cc: Update for renaming + of analyzer/analyzer.h to analyzer/common.h. + * gcc.dg/plugin/analyzer_gil_plugin.cc: Likewise. + * gcc.dg/plugin/analyzer_kernel_plugin.cc: Likewise. + * gcc.dg/plugin/analyzer_known_fns_plugin.cc: Likewise. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/95801 + * gcc.dg/tree-ssa/pr95801.c: New. + +2025-04-28 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/119712 + * gcc.dg/pr119712.c: New. + * gcc.dg/pr83072-2.c: Adjust. + * gcc.dg/tree-ssa/phi-opt-value-5.c: Adjust. + * gcc.dg/tree-ssa/vrp122.c: Adjust + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + PR tree-optimization/67797 + * gcc.dg/tree-ssa/tailcall-14.c: New test. + * gcc.dg/tree-ssa/tailcall-15.c: New test. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + PR c/119432 + * gcc.dg/gimplefe-57.c: New test. + +2025-04-28 Andrew Pinski <quic_apinski@quicinc.com> + + PR tree-optimization/100038 + * g++.dg/tree-ssa/pr100038.C: New test. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/nr2/exclude: Remove now passing test from exclusion + list. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/nr2/exclude: Remove passing test from exclusion list. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/multiple_bindings1.rs: Add missing lang items. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/nr2/exclude: Remove test from exclusion list. + * rust/compile/use_1.rs: Change expected output and remove test from + nr1. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/generics9.rs: Change expected error message. + * rust/compile/nr2/exclude: Remove test from exclusion list. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/nr2/exclude: Remove passing test from exclusion list. + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * rust/compile/nr2/exclude: Remove entry. + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * rust/compile/derive-debug1.rs: Adjust a path. + * rust/compile/nr2/exclude: Remove derive-debug1.rs. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/nr2/exclude: nr2 is missing error for this + * rust/compile/issue-3649.rs: New test. + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * rust/compile/issue-3568.rs: Adjust expected errors. + * rust/compile/name_resolution9.rs: Likewise. + * rust/compile/self-path2.rs: Likewise. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/nonexistent-field.rs: fix bad error message + * rust/compile/issue-3581-1.rs: New test. + * rust/compile/issue-3581-2.rs: New test. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/nr2/exclude: nr2 does not error on the T it should require Self::T + * rust/compile/issue-3652.rs: New test. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/macros/mbe/macro-issue2983_2984.rs: cleanup error diagnotics + * rust/compile/struct_init1.rs: likewise + * rust/compile/issue-3628.rs: New test. + +2025-04-28 Owen Avery <powerboat9.gamer@gmail.com> + + * rust/compile/nr2/exclude: Remove entry. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/issue-3662.rs: New test. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/issue-3711.rs: New test. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/compile/black_box.rs: New test. + +2025-04-28 Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> + + * rust/execute/black_box.rs: New test. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/issue-402.rs: New test. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/issue-3664.rs: New test. + +2025-04-28 Zhi Heng <yapzhhg@gmail.com> + + * rust/compile/issue-3530-1.rs: New file. + * rust/compile/issue-3530-2.rs: New file. + +2025-04-28 Philip Herron <herron.philip@googlemail.com> + + * rust/compile/issue-3612.rs: New test. + +2025-04-28 H.J. Lu <hjl.tools@gmail.com> + Uros Bizjak <ubizjak@gmail.com> + + PR target/109780 + PR target/109093 + * g++.target/i386/pr109780-1.C: New test. + * gcc.target/i386/pr109093-1.c: Likewise. + * gcc.target/i386/pr109780-1.c: Likewise. + * gcc.target/i386/pr109780-2.c: Likewise. + * gcc.target/i386/pr109780-3.c: Likewise. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR ipa/119973 + * gcc.dg/torture/pr119973.c: New testcase. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR tree-optimization/119103 + * gcc.target/i386/pr119103.c: New testcase. + +2025-04-28 Richard Biener <rguenther@suse.de> + + PR middle-end/60779 + * gcc.dg/lto/pr60779_0.c: New testcase. + * gcc.dg/lto/pr60779_1.c: Likewise. + +2025-04-28 Lewis Hyatt <lhyatt@gmail.com> + + PR c/118838 + * c-c++-common/cpp/pragma-diagnostic-loc-2.c: New test. + * g++.dg/gomp/macro-4.C: Adjust expected output. + * gcc.dg/gomp/macro-4.c: Likewise. + * gcc.dg/cpp/Wunknown-pragmas-1.c: Likewise. + +2025-04-28 Jonathan Yong <10walls@gmail.com> + + * gcc.dg/graphite/id-15.c: Use __SIZE_TYPE__ instead of + unsigned long. + * gcc.dg/plugin/infoleak-net-ethtool-ioctl.c: ditto. + 2025-04-27 Nathaniel Shead <nathanieloshead@gmail.com> PR c++/119939 diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 775b000..9a5208c 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,9 @@ +2025-04-28 Lewis Hyatt <lhyatt@gmail.com> + + PR c/118838 + * errors.cc (cpp_get_diagnostic_override_loc): New function. + * include/cpplib.h (cpp_get_diagnostic_override_loc): Declare. + 2025-04-24 Jakub Jelinek <jakub@redhat.com> PR c++/110343 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7458220..3d27c91 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,67 @@ +2025-04-28 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> + + * testsuite/20_util/shared_ptr/requirements/1.cc: Test both + shared_ptr and weak_ptr. + Add more tests. + * testsuite/20_util/weak_ptr/requirements/1.cc: Removed as + superseded by the other test. + +2025-04-28 Tomasz Kamiński <tkaminsk@redhat.com> + + PR libstdc++/119970 + * include/std/ostream (vprint_unicode) [_WIN32 && !__CYGWIN__]: Call + _Str_sink::_M_span instead of view. + * include/std/print (vprint_unicode) [_WIN32 && !__CYGWIN__]: Call + _Str_sink::_M_span instead of view. + +2025-04-28 Tomasz Kamiński <tkaminsk@redhat.com> + + * include/bits/ranges_base.h (__detail::__range_key_type): + Replace remove_const_t with remove_cvref_t. + (__detail::__range_mapped_type): Apply remove_cvref_t. + * include/bits/stl_iterator.h: (__detail::__iter_key_t): + Replace remove_const_t with __remove_cvref_t. + (__detail::__iter_val_t): Apply __remove_cvref_t. + * testsuite/23_containers/flat_map/1.cc: New tests. + * testsuite/23_containers/flat_multimap/1.cc: New tests. + * testsuite/23_containers/map/cons/deduction.cc: New tests. + * testsuite/23_containers/map/cons/from_range.cc: New tests. + * testsuite/23_containers/multimap/cons/deduction.cc: New tests. + * testsuite/23_containers/multimap/cons/from_range.cc: New tests. + * testsuite/23_containers/unordered_map/cons/deduction.cc: New tests. + * testsuite/23_containers/unordered_map/cons/from_range.cc: New tests. + * testsuite/23_containers/unordered_multimap/cons/deduction.cc: + New tests. + * testsuite/23_containers/unordered_multimap/cons/from_range.cc: + New tests. + +2025-04-28 Tomasz Kamiński <tkaminsk@redhat.com> + + * include/bits/unordered_map.h (unordered_map): + Define constructors accepting: + (_InputIterator, _InputIterator, const allocator_type&), + (initializer_list<value_type>, const allocator_type&), + (unordered_multimap): Likewise. + * include/debug/unordered_map (unordered_map): Likewise. + (unordered_multimap): Likewise. + * include/bits/unordered_set.h (unordered_set): + Define constructors and deduction guide accepting: + (_InputIterator, _InputIterator, const allocator_type&), + (initializer_list<value_type>, const allocator_type&), + (unordered_multiset): Likewise. + * include/debug/unordered_set (unordered_set): Likewise. + (unordered_multiset): Likewise. + * testsuite/23_containers/unordered_map/cons/66055.cc: New tests. + * testsuite/23_containers/unordered_map/cons/deduction.cc: New tests. + * testsuite/23_containers/unordered_multimap/cons/66055.cc: New tests. + * testsuite/23_containers/unordered_multimap/cons/deduction.cc: New + tests. + * testsuite/23_containers/unordered_multiset/cons/66055.cc: New tests. + * testsuite/23_containers/unordered_multiset/cons/deduction.cc: New + tests. + * testsuite/23_containers/unordered_set/cons/66055.cc: New tests. + * testsuite/23_containers/unordered_set/cons/deduction.cc: New tests. + 2025-04-25 Jonathan Wakely <jwakely@redhat.com> * include/bits/ptr_traits.h (to_address): Use markdown for |