From fccea8edc376af8f2447b91a8aea25478c26dde1 Mon Sep 17 00:00:00 2001 From: GCC Administrator Date: Wed, 29 Apr 2026 00:16:40 +0000 Subject: [PATCH] Daily bump. --- ChangeLog | 4 + gcc/ChangeLog | 390 ++++++++++++++++++++++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/analyzer/ChangeLog | 263 +++++++++++++++++++++++++++ gcc/c-family/ChangeLog | 10 ++ gcc/c/ChangeLog | 6 + gcc/cp/ChangeLog | 19 ++ gcc/testsuite/ChangeLog | 252 ++++++++++++++++++++++++++ libgomp/ChangeLog | 5 + libsanitizer/ChangeLog | 4 + libstdc++-v3/ChangeLog | 23 +++ 11 files changed, 977 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 4069580a529..6e67c1dc4e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2026-04-28 Bohan Lei + + * MAINTAINERS: Add myself to write after approval and DCO. + 2026-04-01 David Faust * MAINTAINERS: Add my bugzilla account. diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12bb46f0109..8ec41237655 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,393 @@ +2026-04-28 David Malcolm + + PR analyzer/124217 + * doc/invoke.texi: Add -Wanalyzer-div-by-zero. + +2026-04-28 David Malcolm + + * Makefile.in (ANALYZER_OBJS): Add analyzer/exploded-path.o. + +2026-04-28 David Malcolm + + * Makefile.in (ANALYZER_OBJS): Add analyzer/setjmp-longjmp.o. + +2026-04-28 David Malcolm + + * Makefile.in (ANALYZER_OBJS): Add + analyzer/poisoned-value-diagnostic.o, + analyzer/shift-diagnostics.o, and + analyzer/write-to-const-diagnostics.o. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * doc/invoke.texi: Rename -Wanalyzer-mkstemp-missing-suffix to + -Wanalyzer-mktemp-missing-placeholder and + -Wanalyzer-mkstemp-of-string-literal to + -Wanalyzer-mktemp-of-string-literal. Add + -Wanalyzer-mkostemp-redundant-flags. Fix alphabetical ordering + of detailed descriptions. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * doc/invoke.texi: Add -Wanalyzer-mkstemp-missing-suffix and + -Wanalyzer-mkstemp-of-string-literal. + +2026-04-28 David Malcolm + + * diagnostics/html-sink.cc: Update status comment. + +2026-04-28 David Malcolm + + * doc/libgdiagnostics/topics/execution-paths.rst + (diagnostic_execution_path_add_event_via_msg_buf): Fix + indentation. + * doc/libgdiagnostics/topics/message-buffers.rst: Replace + duplicate entry for diagnostic_message_buffer_end_url with entry + for diagnostic_message_buffer_end_quote. + +2026-04-28 David Malcolm + + * diagnostics/context.h (diagnostics::context::make_option_name): + Convert return type from char * to label_text, and rename to... + (diagnostics::context::get_option_name): ...this. + (diagnostics::context::make_option_url): Likewise, renaming to... + (diagnostics::context::get_option_url): ...this. + * diagnostics/html-sink.cc + (html_builder::make_element_for_diagnostic): Update for above + changes. + * diagnostics/lazy-paths.cc (selftest::all_warnings_disabled): + Update for above changes. + * diagnostics/option-id-manager.h + (diagnostics::option_id_manager::make_option_name): Convert return + type from char * to label_text, and rename to... + (diagnostics::option_id_manager::get_option_name): ...this. + (diagnostics::option_id_manager::make_option_url): Likewise, + renaming to... + (diagnostics::option_id_manager::get_option_url): ...this. + * diagnostics/sarif-sink.cc: Add #define INCLUDE_SET. + (sarif_builder::m_rule_id_set): Convert from + hash_set to std::set. + (sarif_builder::make_result_object): Update for above changes, + removing manual memory management. + (sarif_builder::make_reporting_descriptor_object_for_warning): + Likewise. + * diagnostics/text-sink.cc (text_sink::print_option_information): + Likewise. + * lto-wrapper.cc (print_lto_docs_link): Likewise. + (lto_diagnostic_option_id_manager::make_option_name): Convert + return type from char * to label_text, and rename to... + (lto_diagnostic_option_id_manager::get_option_name): ...this. + * opts-diagnostic.h (gcc_diagnostic_option_id_manager): Update for + above changes. + * opts.cc + (compiler_diagnostic_option_id_manager::make_option_name): Update + as above, renaming to... + (compiler_diagnostic_option_id_manager::get_option_name): ...this. + (gcc_diagnostic_option_id_manager::make_option_url): Likewise, + renaming to... + (gcc_diagnostic_option_id_manager::get_option_url): ...this. + +2026-04-28 David Malcolm + + PR sarif-replay/123056 + * libsarifreplay.cc: Include "json-pointer-parsing.h". + (sarif_replayer::sarif_replayer): Initialize m_root_val. + (sarif_replayer::m_root_val): New field. + (sarif_replayer::replay_file): Store m_root_val. + (sarif_replayer::append_embeddded_link): Add message_obj param. + Attempt to decode intra-sarif links, turning them into event IDs. + (sarif_replayer::decode_link_within_sarif): New. + (sarif_replayer::make_plain_text_within_result_message): Pass + message_obj to append_embeddded_link. + +2026-04-28 David Malcolm + + * Makefile.in (OBJS-libcommon): Add json-pointer-parsing.o. + * json-pointer-parsing.cc: New file. + * json-pointer-parsing.h: New file. + * json.cc (json::object::set_string): Return a borrowed pointer to + the new json::value. + (json::object::set_integer): Likewise. + (json::array::append_string): Likewise. + * json.h (json::object::set_string): Likewise. + (json::object::set_integer): Likewise. + (json::array::append_string): Likewise. + * selftest-run-tests.cc (selftest::run_tests): Call + selftest::json_pointer_parsing_cc_tests. + * selftest.h (selftest::json_pointer_parsing_cc_tests): New decl. + +2026-04-28 David Malcolm + + * Makefile.in (OBJS-libcommon): Add pretty-print-token-buffer.o. + * libgdiagnostics.cc: Drop include of "auto-obstack.h". + Include "pretty-print-token-buffer.h". + (class copying_token_printer): Move to + pretty-print-token-buffer.cc. + (struct diagnostic_message_buffer): Reimplement as a subclass of + pretty_print_token_buffer. + (diagnostic_message_buffer::to_string): Rename to + pretty_print_token_buffer::to_string and move to + pretty-print-token-buffer.cc. + * pretty-print-token-buffer.cc: New file, based on material from + libgdiagnostics.cc. + * pretty-print-token-buffer.h: New file, based on material from + libgdiagnostics.h. + * selftest-run-tests.cc (selftest::run_tests): Call + selftest::pretty_print_token_buffer_cc_tests. + * selftest.h (selftest::pretty_print_token_buffer_cc_tests): New + decl. + +2026-04-28 David Malcolm + + * json-diagnostic.cc: Include "pretty-print-markup-json.h". + (class pp_markup::quoted_json_pointer): Move to... + * pretty-print-markup-json.h: ...this new file. + +2026-04-28 Jeff Law + + PR target/124760 + * config/riscv/bitmanip.md (SI->DI promoting shadd pattern): Promote + intermediate SI ops to DI ops when there's a final extending op. + +2026-04-28 Andrew Pinski + + PR tree-optimization/125067 + * tree-ssa-phiprop.cc (can_handle_load): Fix copy and pasto + on dominated_by_p. + +2026-04-28 Vladimir N. Makarov + + * lra-eliminations.cc (mark_not_eliminable): Fix condition to + consider hard regs instead of pseudos for INC/DEC/MODIFY operands. + +2026-04-28 Vladimir N. Makarov + + * lra-constraints.cc (curr_insn_transform): When recreating subreg + of a const put in pool, use the original subreg mode. + +2026-04-28 Vladimir N. Makarov + + * ira-lives.cc (ira_implicitly_set_insn_hard_regs): Use the same + start prefered for all operand. + +2026-04-28 Andrew Pinski + + * tree-ssa-phiprop.cc (propagate_with_phi): Move vuse variable + declaration right before its use. + +2026-04-28 Andrew Pinski + + * tree-ssa-phiprop.cc (propagate_with_phi): Move vuse checks + before the dominator tests. + +2026-04-28 Andrew Pinski + + * tree-ssa-phiprop.cc (propagate_with_phi): Factor out + checking the load for vdef to .... + (can_move_into_conditional): Here. + +2026-04-28 Philipp Tomsich + + * fold-mem-offsets.cc (pass_fold_mem_offsets::execute): Remove + optimize_bb_for_size_p check. + * config/riscv/riscv.cc (riscv_option_override): Disable + flag_fold_mem_offsets when optimizing for size with compressed + instructions. + +2026-04-28 Jiawei + Edwin Lu + + * config/riscv/riscv-ext.def: New extension. + * config/riscv/riscv-ext.opt: Ditto. + * config/riscv/sync-rvwmo.md: Add check for zalasr. + * config/riscv/sync-ztso.md: Ditto. + * doc/riscv-ext.texi: New extension. + +2026-04-28 Maximilian Ciric + + * config/riscv/riscv.cc (riscv_can_tag_addresses): New function. + (RISCV_HWASAN_TAG_SIZE): New definition. + (riscv_memtag_tag_bitsize): New function. + (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New definition. + (TARGET_MEMTAG_TAG_BITSIZE): Likewise. + +2026-04-28 Dimitar Dimitrov + + * config/pru/pru.h (ASM_SPEC): Define. + +2026-04-28 Jeff Law + + PR tree-optimization/94892 + * config/riscv/riscv.md (sign_bit_splat_equality_test): New pattern. + +2026-04-28 Richard Biener + + * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Do not + attempt to live code-generate defs that are kept in scalar + form anyway. + * tree-vect-loop.cc (vectorizable_live_operation): Update + comment. + +2026-04-28 Richard Biener + + * tree-vectorizer.h (_slp_tree::live_lanes): New vector. + (SLP_TREE_LIVE_LANES): New. + * tree-vect-loop.cc (vectorizable_live_operation): Append + to SLP_TREE_LIVE_LANES. + * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize + SLP_TREE_LIVE_LANES. + (_slp_tree::~_slp_tree): Release SLP_TREE_LIVE_LANES. + (vect_print_slp_tree): Adjust live lane dumping, indicating + the SLP node a lane is code generated from. + (vect_bb_slp_mark_live_stmts): No longer verify we can + code-generate from all SLP nodes but at least one, picking + the first. + * tree-vect-stmts.cc (vect_transform_stmt): Iterate over + SLP_TREE_LIVE_LANES. + (vect_analyze_stmt): Also analyze reductions for live + lanes. + +2026-04-28 Richard Biener + + PR tree-optimization/124222 + * tree-vect-slp.cc (vect_slp_gather_vectorized_scalar_stmts): Remove. + (vect_bb_slp_scalar_cost): Simplify by using SLP_TREE_TYPE and + a use-def walk of the scalar stmts SSA uses. + (vect_bb_vectorization_profitable_p): Simplify. + +2026-04-28 Richard Biener + + * tree-vect-slp.cc (vec_slp_has_scalar_use): Remove. + (vect_bb_slp_mark_live_stmts): Simplify. + +2026-04-28 Richard Biener + + * tree-vect-slp.cc (vect_slp_analyze_bb_1): Split out pure_slp + marking into ... + (vect_bb_slp_mark_stmts_vectorized): ... new function. Compute + full scalar stmt coverage of the SLP graph. + (vect_slp_gather_extern_scalar_stmts): New helper. + (vect_bb_slp_mark_live_stmts): Adjust. + * tree-vect-loop.cc (vectorizable_live_operation): Likewise. + +2026-04-28 Richard Biener + + * tree-vect-slp.cc (struct slp_oprnds): New. + +2026-04-28 Richard Biener + + * tree-vect-slp.cc (vect_slp_analyze_operations): Move + vect_bb_slp_mark_live_stmts call ... + (vect_slp_analyze_bb_1): ... here. Move SLP stmt marking + right before it. + (vect_mark_slp_stmts): Remove unused overload. + +2026-04-28 Richard Biener + + * tree-vectorizer.h (vect_slp_child_index_for_operand): Get + a stmt_vec_info, elide gather-scatter flag. + * tree-vect-stmts.cc (vect_check_store_rhs): Adjust. + (vectorizable_simd_clone_call): Likewise. + (vectorizable_store): Likewise. + (vectorizable_load): Likewise. + * tree-vect-slp.cc (vect_get_operand_map): New overload + with a stmt_vec_info argument. + (vect_slp_child_index_for_operand): Adjust. + (vect_get_and_check_slp_defs): Likewise. + (compatible_calls_p): Likewise. + (vect_build_slp_tree_2): Likewise. + +2026-04-28 Richard Biener + + * tree-vect-slp.cc (vect_get_operand_map): Put operand map + data here. Handle VIEW_CONVERT_EXPR, use else if, factor + out assertion. + (vect_get_and_check_slp_defs): Remove explicit VIEW_CONVERT_EXPR + handling here. + +2026-04-28 Uros Bizjak + + * config/i386/i386.cc (construct_container): Remove redundant + early call to classify_argument. Recompute the classification + only when needed and assert that it succeeds. + (examine_argument): Change in_return parameter type to bool. + (function_arg_advance_64): Update call to examine_argument. + (function_arg_64): Update call to construct_container. + (function_value_64): Likewise. + (ix86_return_in_memory): Update call to examine_argument. + (ix86_gimplify_va_arg): Update calls to construct_container + and examine_argument. + +2026-04-28 Bohan Lei + + * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Specify -mcpu + instead of -march when --with-cpu is used. + +2026-04-28 Bohan Lei + + * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): + Add simplifications for `(cmp (and/ior x C1) C2)`. + +2026-04-28 Richard Biener + + * tree-vect-loop.cc (vect_estimate_min_profitable_iters): + Add comment about costing of prologue/epilogue. + +2026-04-28 Richard Biener + + * tree-vect-loop.cc (vect_get_known_peeling_cost): Use + scalar_costs instead of guesstimating it. + +2026-04-28 Richard Biener + + * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost): + Record stmt cost to vect_body. + +2026-04-28 Richard Biener + + * tree-vectorizer.h (vect_get_known_peeling_cost): Simplify API. + * tree-vect-loop.cc (vect_get_known_peeling_cost): Avoid + all the overhead of record_stmt_cost as we only are interested + in the overall sum of the included builtin_vectorization_cost + calls. + * tree-vect-data-refs.cc (vect_peeling_hash_get_lowest_cost): + Adjust. + (vect_enhance_data_refs_alignment): Likewise. + +2026-04-28 Netanel Komm + + PR tree-optimization/112659 + PR tree-optimization/122996 + * match.pd: Extend conditional addition pattern to handle + a third constant and uniform vectors. + +2026-04-28 Monk Chiang + + * config/riscv/riscv.md (length attribute): Check CROSSING_JUMP_P + for jump instructions and use length 8 for crossing jumps. + (jump): Update comment to explain when long form is used. + +2026-04-28 Jakub Jelinek + + PR tree-optimization/125039 + * range-op-float.cc (operator_not_equal::fold_range): Call + empty_range_varying when not calling frelop_early_resolve. + +2026-04-28 Jakub Jelinek + + * tree.cc (build_bitint_type): Allow build_bitint_type (1, 0). + (signed_or_unsigned_type_for): Call that for !unsignedp case + of BITINT_TYPE with bits 1. + +2026-04-28 Andrew Pinski + + PR tree-optimization/125036 + * tree-ssa-loop-ivopts.cc (add_iv_candidate_for_doloop): Don't + assert on niniter being integer type. Convert to a full mode + integer type if non integer or non-full mode integer type. + 2026-04-27 Jeff Law PR tree-optimization/57650 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index bf2612c1d52..9d1459a9cd5 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20260428 +20260429 diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index 055739a4a70..f49637b48bf 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,266 @@ +2026-04-28 David Malcolm + + PR analyzer/124217 + * analyzer.opt (Wanalyzer-div-by-zero): New. + * analyzer.opt.urls: Regenerate. + * region-model.cc (class div_by_zero_diagnostic): New. + (region_model::get_gassign_result): Add warning for division by + zero if ctxt is non-null. Bail out on such cases even if ctxt + is null. + * svalue.cc (type_can_have_value_range_p): Also handle frange. + +2026-04-28 David Malcolm + + * diagnostic-manager.cc: Include "analyzer/exploded-path.h". + * engine.cc: Likewise. + (exploded_path::exploded_path): Move to exploded-path.cc. + (exploded_path::find_stmt_backwards): Likewise. + (exploded_path::get_final_enode): Likewise. + (exploded_path::feasible_p): Likewise. + (exploded_path::dump_to_pp): Likewise. + (exploded_path::dump): Likewise. + (exploded_path::dump_to_file): Likewise. + * exploded-graph.h (class exploded_path): Move to exploded-path.h. + (shortest_exploded_paths): Likewise. + * exploded-path.cc: New file, taken from the above. + * exploded-path.h: Likewise. + * feasible-graph.cc: Include "analyzer/exploded-path.h". + +2026-04-28 David Malcolm + + * analyzer.cc (is_setjmp_call_p): Move to setjmp-longjmp.cc. + (is_longjmp_call_p): Likewise. + * engine.cc (setjmp_record::cmp): Likewise. + (setjmp_svalue::accept): Likewise. + (setjmp_svalue::dump_to_pp): Likewise. + (setjmp_svalue::print_dump_widget_label): Likewise. + (setjmp_svalue::add_dump_widget_children): Likewise. + (setjmp_svalue::get_enode_index): Likewise. + (valid_longjmp_stack_p): Likewise. + (class stale_jmp_buf): Likewise. + (exploded_node::on_longjmp): Likewise. + (rewind_info_t::update_model): Likewise. + (rewind_info_t::add_events_to_path): Likewise. + * region-model.cc (region_model::on_setjmp): Likewise. + (region_model::on_longjmp): Likewise. + * setjmp-longjmp.cc: New file, made from the above material. + * svalue.cc: Update comment. + +2026-04-28 David Malcolm + + * poisoned-value-diagnostic.cc: New file, taken from material in + region-model.cc. + * region-model.cc (class poisoned_value_diagnostic): Move to + poisoned-value-diagnostic.cc. + (class shift_count_negative_diagnostic): Move to + shift-diagnostics.cc. + (class shift_count_overflow_diagnostic): Likewise. + (region_model::get_gassign_result): Use factory functions when + creating diagnostics so that the subclasses can be moved to their + own source files. + (region_model::check_for_poison): Likewise. + (region_model::deref_rvalue): Likewise. + (class write_to_const_diagnostic): Move to + write-to-const-diagnostics.cc. + (class write_to_string_literal_diagnostic): Likewise. + (region_model::check_for_writable_region): Use factory functions + when creating diagnostics so that the subclasses can be moved to + their own source files. + * region-model.h (make_poisoned_value_diagnostic): New decl. + (make_shift_count_negative_diagnostic): New decl. + (make_shift_count_overflow_diagnostic): New decl. + (make_write_to_const_diagnostic): New decl. + (make_write_to_string_literal_diagnostic): New decl. + * shift-diagnostics.cc: New file, taken from material in + region-model.cc. + * write-to-const-diagnostics.cc: Likewise. + +2026-04-28 David Malcolm + + PR analyzer/123145 + * access-diagram.cc + (compound_svalue_spatial_item::compound_svalue_spatial_item): + Update for compound_svalue using concrete_binding_map rather than + binding_map. + * bounds-checking.cc (strip_types): Likewise. + * call-summary.cc + (call_summary_replay::convert_svalue_from_summary_1): Update for + reimplementation of class binding_map. + (call_summary_replay::convert_svalue_from_summary_1): Likewise. + * infinite-recursion.cc (contains_unknown_p): Update for + compound_svalue using concrete_binding_map rather than + binding_map. + * program-state.cc (sm_state_map::impl_set_state): Likewise. + * region-model-manager.cc (maybe_undo_optimize_bit_field_compare): + Likewise. + (maybe_undo_optimize_bit_field_compare): Avoid building a + concrete_binding key by using get_any_exact_binding. + (region_model_manager::get_or_create_compound_svalue): New + overload, consuming a concrete_binding_map &&. + * region-model-manager.h + (region_model_manager::get_or_create_compound_svalue): New decl + for the above. + * region-model-reachability.cc (reachable_regions::handle_sval): + Update for compound_svalue using concrete_binding_map rather than + binding_map. + (reachable_regions::handle_parm): Likewise. + * region-model.cc (region_model::scan_for_null_terminator_1): Port + from binding_map to concrete_binding_map. + (exposure_through_uninit_copy::calc_num_uninit_bits): Update for + compound_svalue using concrete_binding_map rather than + binding_map. + (contains_uninit_p): Likewise. + * region.cc (decl_region::calc_svalue_for_constructor): Port from + binding_map to concrete_binding_map. + (decl_region::get_svalue_for_initializer): Update call to + get_or_create_compound_svalue. + * store.cc (concrete_binding_map::dump_to_pp): New. + (concrete_binding_map::dump): New. + (concrete_binding_map::add_to_tree_widget): New. + (concrete_binding_map::validate): New. + (binding_map::cmp): Convert to... + (concrete_binding_map::cmp): ...this. + (concrete_binding_map::get_any_exact_binding): New. + (concrete_binding_map::calc_complexity): New. + (concrete_binding_map::remove_overlapping_binding): New. + (concrete_binding_map::remove_overlapping_bindings): New. + (concrete_binding_map::get_overlapping_bindings): New. + (binding_map::put): Update for change to m_concrete. + (binding_map::validate): Likewise. + (binding_map::apply_ctor_to_region): Convert to... + (concrete_binding_map::apply_ctor_to_region): ...this. + (binding_map::apply_ctor_val_to_range): Convert to... + (concrete_binding_map::apply_ctor_val_to_range): ...this. + (binding_map::apply_ctor_pair_to_child_region): Convert to... + (concrete_binding_map::apply_ctor_pair_to_child_region): ...this. + (binding_map::remove_overlapping_bindings): Move part of + implementation to + concrete_binding_map::remove_overlapping_binding. + (binding_cluster::bind_compound_sval): Simplify using + concrete_binding_map. + (binding_cluster::maybe_get_compound_binding): Likewise. + (store::replay_call_summary_cluster): Update for change + to compound_svalue. + * store.h: Include "analyzer/complexity.h". + (class concrete_binding_map): New, based on + binding_map::concrete_bindings_t. + (binding_map::concrete_bindings_t): Use concrete_binding_map. + (binding_map::empty_p): Update for above. + (binding_map::apply_ctor_to_region): Drop decl. + (binding_map::cmp): Likewise. + (binding_map::apply_ctor_val_to_range): Likewise. + (binding_map::apply_ctor_pair_to_child_region): Likewise. + * svalue.cc (svalue::cmp_ptr): Update for change to + compound_svalue. + (compound_svalue::compound_svalue): Port from binding_map to + concrete_binding_map. + (compound_svalue::accept): Likewise. + (compound_svalue::calc_complexity): Drop. + (compound_svalue::maybe_fold_bits_within): Port from binding_map + to concrete_binding_map. + * svalue.h (class compound_svalue): Update leading comment. Port + from binding_map to concrete_binding_map. + +2026-04-28 Virginia Kodsy + + * kf.cc (class kf_strcasecmp): New. + (kf_strcasecmp::impl_call_post): New. + (register_known_functions): Register BUILT_IN_STRCASECMP, + "strcasecmp", and "__builtin_strcasecmp". + +2026-04-28 Ridham Khurana + + * kf.cc (class kf_getenv): New. + (kf_getenv::impl_call_post): New. + (register_known_functions): Register kf_getenv. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * kf.cc (class kf_mktemp_family): Add nested outcome enum, + constructor, and nested failure and success classes. + (kf_mktemp_family::check_template_with_suffixlen_arg): Remove. + (kf_mktemp_family::check_template): Remove. Both replaced + by... + (kf_mktemp_family::check_for_string_literal_arg): ...this. + (kf_mktemp_family::get_trailing_len): New. + (kf_mktemp_family::impl_call_post): New. + (class kf_mktemp_simple): Add constructor taking outcome. + Replace check_template with check_for_string_literal_arg. + Remove set_any_lhs_with_defaults call. + (class kf_mkostemp): Add constructor. Replace check_template + with check_for_string_literal_arg. Remove + set_any_lhs_with_defaults call. + (class kf_mkostemps): Likewise. + (class kf_mkstemps): Likewise. + (register_known_functions): Pass outcome to kf_mktemp_simple + instantiations. + * region-model.cc (region_model::update_for_null_return): New. + * region-model.h (class region_model): Add + update_for_null_return. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * analyzer-language.cc (stash_named_constants): Stash O_CREAT, + O_EXCL, and O_RDWR for use by kf.cc. + * analyzer.opt: Rename -Wanalyzer-mkstemp-missing-suffix to + -Wanalyzer-mktemp-missing-placeholder and + -Wanalyzer-mkstemp-of-string-literal to + -Wanalyzer-mktemp-of-string-literal. Add + -Wanalyzer-mkostemp-redundant-flags. Fix alphabetical ordering. + * analyzer.opt.urls: Regenerate. + * kf.cc (class mkstemp_of_string_literal): Rename to... + (class mktemp_of_string_literal): ...this. + (class mkstemp_missing_suffix): Rename to... + (class mktemp_missing_placeholder): ...this. Add trailing_len + parameter for suffixed variants. + (class mkostemp_redundant_flags): New diagnostic class. + (class kf_mktemp_family): New base class with shared template + and flags checking logic. + (kf_mktemp_family::check_template_with_suffixlen_arg): New. + (kf_mktemp_family::check_template): New. + (kf_mktemp_family::check_flags): New. + (kf_mktemp_family::check_placeholder): New. + (class kf_mkstemp): Rename to... + (class kf_mktemp_simple): ...this. Generalize to handle mktemp, + mkstemp, and mkdtemp. + (class kf_mkostemp): New known_function handler. + (class kf_mkostemps): New known_function handler. + (class kf_mkstemps): New known_function handler. + (register_known_functions): Register all mktemp family handlers. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * analyzer.opt: Add -Wanalyzer-mkstemp-missing-suffix and + -Wanalyzer-mkstemp-of-string-literal. + * analyzer.opt.urls: Add URL entries for the new warnings. + * kf.cc (class mkstemp_of_string_literal): New diagnostic class + for mkstemp called on a string literal. + (class mkstemp_missing_suffix): New diagnostic class for mkstemp + called with a template missing the "XXXXXX" suffix. + (class kf_mkstemp): New known_function handler for mkstemp. + (register_known_functions): Register kf_mkstemp. + +2026-04-28 Saksham Gupta + + * kf.cc (class kf_atoi_family): New class. + (register_known_functions): Register atoi, atol, and atoll. + +2026-04-28 David Malcolm + + * access-diagram.cc + (access_diagram_impl::add_aligned_child_table): Use + std::make_unique rather than "new". + (access_diagram_impl::add_valid_vs_invalid_ruler): Likewise. + * checker-path.h (checker_path::replace_event): Use + std::unique_ptr. + * diagnostic-manager.cc + (diagnostic_manager::consolidate_conditions): Use std::make_unique + rather than "new". + * feasible-graph.cc (feasible_graph::make_epath): Likewise. + 2026-04-16 Torbjörn SVENSSON * engine.cc (impl_region_model_context::on_unexpected_tree_code): Print diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index d5036a2ac39..6851725b2b4 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,13 @@ +2026-04-28 Jakub Jelinek + + * c-common.cc (c_common_signed_or_unsigned_type): Use + build_bitint_type for TREE_CODE (type) == BITINT_TYPE whenever + flag_isoc2y even when precision is 1. + (c_common_get_alias_set): Don't special case BITINT_TYPE + with precision 1 for flag_isoc2y. + * c-lex.cc (interpret_integer): Use _BitInt(1) type for 0wb + if flag_isoc2y, rather than _BitInt(2). + 2026-04-22 Jakub Jelinek * c-cppbuiltin.cc (c_cpp_builtins): Bump __cpp_impl_reflection value diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index a1cc6fc978d..305041fb081 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2026-04-28 Jakub Jelinek + + * c-decl.cc (finish_declspecs) : Implement + C2Y N3747 - Integer Sets, v5. Allow signed _BitInt(1) for + flag_isoc2y. + 2026-04-25 Martin Uecker PR c/124303 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c51be716a94..786cb94b48b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,22 @@ +2026-04-28 Marek Polacek + + PR c++/124756 + * reflect.cc (get_reflection): Give an error when taking the + reflection of a block-scope extern. + +2026-04-28 Marek Polacek + + * error.cc (inform_tree_category): Also print concept and alias + template. + * pt.cc (tsubst_splice_scope): Reword the diagnostic messages. + Call inform_tree_category. + +2026-04-28 Jason Merrill + + PR c++/125022 + * decl.cc (store_parm_decls): Only do trivial_abi stuff when + !processing_template_decl. + 2026-04-27 Patrick Palka PR c++/124978 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2cd01582a9c..5e7e1f3056b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,255 @@ +2026-04-28 David Malcolm + + PR analyzer/124217 + * c-c++-common/analyzer/divide-by-zero-1.c: Update to expect + -Wanalyzer-div-by-zero. + * c-c++-common/analyzer/divide-by-zero-pr124195-2.c: Likewise. + * gcc.dg/analyzer/data-model-1.c (test_21): Split out division by + zero cases into... + (test_21_division_by_zero): ...this, and... + (test_21_modulus_by_zero): ...this, updating these to expect + -Wanalyzer-div-by-zero warnings. + * gcc.dg/analyzer/divide-by-zero-float.c: New test. + * gcc.dg/analyzer/divide-by-zero-ice-pr124433.c: Update to expect + -Wanalyzer-div-by-zero. + * gcc.dg/analyzer/divide-by-zero-pr124195-1.c: Likewise. + +2026-04-28 Virginia Kodsy + + * gcc.dg/analyzer/strcasecmp-1.c: New test. + +2026-04-28 Ridham Khurana + + * gcc.dg/analyzer/getenv-1.c (test_passthrough): New test. + +2026-04-28 Ridham Khurana + + * gcc.dg/analyzer/getenv-1.c: New test. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * gcc.dg/analyzer/mkdtemp-1.c: Add tests for errno on + success/failure, non-null return identity, and no-lhs call. + * gcc.dg/analyzer/mkostemp-1.c: Prune fd leak warnings. + * gcc.dg/analyzer/mkostemps-1.c: Likewise. + * gcc.dg/analyzer/mkstemp-1.c: Likewise. + * gcc.dg/analyzer/mkstemps-1.c: Likewise. + * gcc.dg/analyzer/mktemp-1.c: Add errno, failure, and success + path tests. + * gcc.dg/analyzer/fd-mktemp-family.c: New test. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * gcc.dg/analyzer/mkstemp-1.c: Update terminology from "suffix" + to "placeholder". + * gcc.dg/analyzer/mkdtemp-1.c: New test. + * gcc.dg/analyzer/mkostemp-1.c: New test. + * gcc.dg/analyzer/mkostemps-1.c: New test. + * gcc.dg/analyzer/mkstemps-1.c: New test. + * gcc.dg/analyzer/mktemp-1.c: New test. + +2026-04-28 Tomás Ortín Fernández + + PR analyzer/105890 + * gcc.dg/analyzer/mkstemp-1.c: New test. + +2026-04-28 Saksham Gupta + + * gcc.dg/analyzer/atoi-1.c: Update test coverage. + +2026-04-28 David Malcolm + + PR sarif-replay/123056 + * sarif-replay.dg/2.1.0-invalid/3.10.3-bad-json-pointer.sarif: New + test. + * sarif-replay.dg/2.1.0-valid/embedded-links-pr123056-check-sarif-roundtrip.py + (test_roundtrip_of_url_in_generated_sarif): Update expected + result, to expect the URL for the event. + +2026-04-28 David Malcolm + + * selftests/json-pointer.json: New support file, taken directly + from RFC 6901. + +2026-04-28 Jeff Law + + PR target/124760 + * gcc.target/riscv/pr124760.c: New test. + +2026-04-28 Marek Polacek + + PR c++/124756 + * g++.dg/reflect/identifier_of3.C: Add dg-error. + * g++.dg/reflect/pr123612.C: Likewise. + * g++.dg/reflect/error13.C: New test. + +2026-04-28 Marek Polacek + + * g++.dg/reflect/ns5.C: Adjust expected diagnostics. + * g++.dg/reflect/type9.C: Likewise. + +2026-04-28 Andrew Pinski + + PR tree-optimization/116823 + * g++.dg/tree-ssa/phiprop-1.C: New test. + +2026-04-28 Jiawei + Edwin Lu + + * gcc.target/riscv/amo/a-rvwmo-fence.c: Disable zalasr from -march. + * gcc.target/riscv/amo/a-rvwmo-load-acquire.c: Ditto. + * gcc.target/riscv/amo/a-rvwmo-load-relaxed.c: Ditto. + * gcc.target/riscv/amo/a-rvwmo-load-seq-cst.c: Ditto. + * gcc.target/riscv/amo/a-rvwmo-store-compat-seq-cst.c: Ditto. + * gcc.target/riscv/amo/a-rvwmo-store-relaxed.c: Ditto. + * gcc.target/riscv/amo/a-rvwmo-store-release.c: Ditto. + * gcc.target/riscv/amo/a-ztso-fence.c: Ditto. + * gcc.target/riscv/amo/a-ztso-load-acquire.c: Ditto. + * gcc.target/riscv/amo/a-ztso-load-relaxed.c: Ditto. + * gcc.target/riscv/amo/a-ztso-load-seq-cst.c: Ditto. + * gcc.target/riscv/amo/a-ztso-store-compat-seq-cst.c: Ditto. + * gcc.target/riscv/amo/a-ztso-store-relaxed.c: Ditto. + * gcc.target/riscv/amo/a-ztso-store-release.c: Ditto. + * gcc.target/riscv/amo/zaamo-preferred-over-zalrsc.c: Ditto. + * gcc.target/riscv/amo/zaamo-rvwmo-amo-add-int.c: Ditto. + * gcc.target/riscv/amo/zaamo-ztso-amo-add-int.c: Ditto. + * gcc.target/riscv/amo/zabha-rvwmo-all-amo-ops-char.c: Ditto. + * gcc.target/riscv/amo/zabha-rvwmo-all-amo-ops-short.c: Ditto. + * gcc.target/riscv/amo/zabha-rvwmo-amo-add-char.c: Ditto. + * gcc.target/riscv/amo/zabha-rvwmo-amo-add-short.c: Ditto. + * gcc.target/riscv/amo/zabha-zacas-atomic-cas.c: Ditto. + * gcc.target/riscv/amo/zabha-zacas-preferred-over-zalrsc.c: Ditto. + * gcc.target/riscv/amo/zabha-ztso-amo-add-char.c: Ditto. + * gcc.target/riscv/amo/zabha-ztso-amo-add-short.c: Ditto. + * gcc.target/riscv/amo/zacas-char-requires-zabha.c: Ditto. + * gcc.target/riscv/amo/zacas-char-requires-zacas.c: Ditto. + * gcc.target/riscv/amo/zacas-preferred-over-zalrsc.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-acq-rel.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-acquire.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-relaxed.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-release.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-char-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-compatability-mapping-no-fence.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-compatability-mapping.cc: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-acq-rel.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-acquire.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-relaxed.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-release.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-int-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-acq-rel.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-acquire.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-relaxed.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-release.c: Ditto. + * gcc.target/riscv/amo/zacas-rvwmo-compare-exchange-short-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-char.c: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-compatability-mapping-no-fence.c: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-compatability-mapping.cc: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-int-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-int.c: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-short-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zacas-ztso-compare-exchange-short.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-amo-add-int.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-acquire-release.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-acquire.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-consume.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-relaxed.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-release.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-seq-cst-relaxed.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-compare-exchange-int-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-acq-rel.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-acquire.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-relaxed.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-release.c: Ditto. + * gcc.target/riscv/amo/zalrsc-rvwmo-subword-amo-add-char-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-amo-add-int.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-acquire-release.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-acquire.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-consume.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-relaxed.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-release.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-seq-cst-relaxed.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-compare-exchange-int-seq-cst.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-acq-rel.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-acquire.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-relaxed.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-release.c: Ditto. + * gcc.target/riscv/amo/zalrsc-ztso-subword-amo-add-char-seq-cst.c: Ditto. + * lib/target-supports.exp: Add zalasr checks. + * gcc.target/riscv/amo/zalasr-rvwmo-load-acquire.c: New test. + * gcc.target/riscv/amo/zalasr-rvwmo-load-relaxed.c: New test. + * gcc.target/riscv/amo/zalasr-rvwmo-load-seq-cst.c: New test. + * gcc.target/riscv/amo/zalasr-rvwmo-store-compat-seq-cst.c: New test. + * gcc.target/riscv/amo/zalasr-rvwmo-store-relaxed.c: New test. + * gcc.target/riscv/amo/zalasr-rvwmo-store-release.c: New test. + * gcc.target/riscv/amo/zalasr-ztso-load-acquire.c: New test. + * gcc.target/riscv/amo/zalasr-ztso-load-relaxed.c: New test. + * gcc.target/riscv/amo/zalasr-ztso-load-seq-cst.c: New test. + * gcc.target/riscv/amo/zalasr-ztso-store-compat-seq-cst.c: New test. + * gcc.target/riscv/amo/zalasr-ztso-store-relaxed.c: New test. + * gcc.target/riscv/amo/zalasr-ztso-store-release.c: New test. + Co-Authored-by: Edwin Lu + +2026-04-28 Jeff Law + + PR tree-optimization/94892 + * gcc.target/riscv/pr94892.c: New test. + +2026-04-28 Tomasz Kamiński + + * g++.dg/cpp26/type-order1.C: Add tests for more type. + +2026-04-28 Richard Biener + + PR tree-optimization/124222 + * gcc.dg/vect/costmodel/x86_64/costmodel-pr124222.c: New testcase. + +2026-04-28 Bohan Lei + + * gcc.target/i386/pr113609-1.c: Change assembly check after + optimization. + * gcc.target/riscv/zbs-if_then_else-02.c: New test. + +2026-04-28 Netanel Komm + + PR tree-optimization/112659 + PR tree-optimization/122996 + * g++.dg/tree-ssa/cond-add-vec-1.C: New test (positive cases). + * g++.dg/tree-ssa/cond-add-vec-2.C: New test (negative cases). + * gcc.dg/tree-ssa/cond-add-1.c: New test (positive cases). + * gcc.dg/tree-ssa/cond-add-2.c: New test (negative cases). + +2026-04-28 Monk Chiang + + * gcc.target/riscv/pr-crossing-jump-1.c: New test. + * gcc.target/riscv/pr-crossing-jump-2.c: New test. + * gcc.target/riscv/pr-crossing-jump-3.c: New test. + +2026-04-28 Jakub Jelinek + + PR tree-optimization/125039 + * gcc.c-torture/compile/pr125039.c: New test. + +2026-04-28 Jakub Jelinek + + * gcc.dg/torture/bitint-96.c: New test. + * gcc.dg/torture/bitint-97.c: New test. + * gcc.dg/torture/bitint-98.c: New test. + * gcc.dg/bitint-130.c: New test. + * gcc.dg/bitint-131.c: New test. + * gcc.dg/bitint-132.c: New test. + +2026-04-28 Andrew Pinski + + PR tree-optimization/125036 + * gcc.dg/torture/pr125036-1.c: New test. + +2026-04-28 Jason Merrill + + PR c++/125022 + * g++.dg/cpp0x/attr-trivial_abi7.C: New test. + 2026-04-27 Jeff Law PR tree-optimization/57650 diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index b3dc5f4ade3..341984ff04b 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2026-04-28 Tobias Burnus + + * testsuite/libgomp.fortran/map-subarray-6.f90: Fix, extend, and + robustify. + 2026-04-17 Thomas Schwinge * testsuite/libgomp.c/declare-variant-3-sm50.c: New. diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 60bc501754c..a58e7de581b 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,7 @@ +2026-04-28 Maximilian Ciric + + * configure.tgt: Enable HWASAN support for RISC-V target. + 2026-04-21 Marian Buschsieweke PR sanitizer/124248 diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c8ffba1bed5..0a9136386ba 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,26 @@ +2026-04-28 Jonathan Wakely + + * doc/xml/manual/status_cxx2023.xml: Update status table. + * doc/html/manual/status.html: Regenerate. + +2026-04-28 Jonathan Wakely + + * doc/xml/manual/using.xml (Flags): Update description of + default value for -std option. + * doc/html/manual/using.html: Regenerate. + +2026-04-28 Tomasz Kamiński + + * include/bits/ptr_traits.h (__ptr_traits_ptr_to::pointer_to): + Define as constexpr since C++20. + * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: + New test for custom pointer-like type. + +2026-04-28 Tomasz Kamiński + + * testsuite/18_support/comparisons/type_order/1.cc: Add tests + for more type. + 2026-04-27 Jakub Jelinek PR libstdc++/125024