aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--gcc/ChangeLog293
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/analyzer/ChangeLog419
-rw-r--r--gcc/c-family/ChangeLog17
-rw-r--r--gcc/c/ChangeLog28
-rw-r--r--gcc/cp/ChangeLog35
-rw-r--r--gcc/jit/ChangeLog5
-rw-r--r--gcc/rust/ChangeLog353
-rw-r--r--gcc/testsuite/ChangeLog312
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libstdc++-v3/ChangeLog64
12 files changed, 1537 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 2fb380b..9c7c932 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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