+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/96032
+ * Makefile.in (lang_checks): If libdiagnostics is enabled, add
+ check-sarif-replay.
+ (SARIF_REPLAY_OBJS): New.
+ (ALL_HOST_OBJS): If libdiagnostics is enabled, add
+ $(SARIF_REPLAY_OBJS).
+ (sarif-replay): New.
+ (install-libdiagnostics): Add sarif-replay to deps, and install
+ it.
+ * configure: Regenerate.
+ * configure.ac (check_languages): If libdiagnostics is enabled,
+ add check-sarif-replay.
+ (LIBDIAGNOSTICS): If libdiagnostics is enabled, add sarif-replay.
+ * doc/install.texi (--enable-libdiagnostics): Note that it also
+ enables sarif-replay.
+ * libsarifreplay.cc: New file.
+ * libsarifreplay.h: New file.
+ * sarif-replay.cc: New file.
+ * sarif-spec-urls.def: New file.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ * Makefile.in (OBJS-libcommon): Add json-parsing.o.
+ * json-parsing.cc: New file.
+ * json-parsing.h: New file.
+ * json.cc (selftest::assert_print_eq): Remove "static".
+ * json.h (json::array::begin): New.
+ (json::array::end): New.
+ (json::array::length): New.
+ (json::array::get): New.
+ (is_a_helper <json::value *>::test): New.
+ (is_a_helper <const json::value *>::test): New.
+ (is_a_helper <json::object *>::test): New.
+ (is_a_helper <const json::object *>::test): New.
+ (is_a_helper <json::array *>::test): New.
+ (is_a_helper <const json::array *>::test): New.
+ (is_a_helper <json::float_number *>::test): New.
+ (is_a_helper <const json::float_number *>::test): New.
+ (is_a_helper <json::integer_number *>::test): New.
+ (is_a_helper <const json::integer_number *>::test): New.
+ (is_a_helper <json::string *>::test): New.
+ (is_a_helper <const json::string *>::test): New.
+ (selftest::assert_print_eq): New decl.
+ * selftest-run-tests.cc (selftest::run_tests): Call
+ selftest::json_parser_cc_tests.
+ * selftest.h (selftest::json_parser_cc_tests): New decl.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ * configure.ac (check_languages): Add check-libdiagnostics.
+ (--enable-libdiagnostics): New.
+ * configure: Regenerate.
+ * Makefile.in (enable_libdiagnostics): New.
+ (lang_checks): If libdiagnostics is enabled, add
+ check-libdiagnostics.
+ (ALL_HOST_OBJS): If libdiagnostics is enabled, add
+ $(libdiagnostics_OBJS).
+ (start.encap): Add LIBDIAGNOSTICS.
+ (libdiagnostics_OBJS): New.
+ (LIBDIAGNOSTICS_VERSION_NUM): New, adapted from code in
+ jit/Make-lang.in.
+ (LIBDIAGNOSTICS_MINOR_NUM): Likewise.
+ (LIBDIAGNOSTICS_RELEASE_NUM): Likewise.
+ (LIBDIAGNOSTICS_FILENAME): Likewise.
+ (LIBDIAGNOSTICS_IMPORT_LIB): Likewise.
+ (libdiagnostics): Likewise.
+ (LIBDIAGNOSTICS_AGE): Likewise.
+ (LIBDIAGNOSTICS_BASENAME): Likewise.
+ (LIBDIAGNOSTICS_SONAME): Likewise.
+ (LIBDIAGNOSTICS_LINKER_NAME): Likewise.
+ (LIBDIAGNOSTICS_COMMA): Likewise.
+ (LIBDIAGNOSTICS_VERSION_SCRIPT_OPTION): Likewise.
+ (LIBDIAGNOSTICS_SONAME_OPTION): Likewise.
+ (LIBDIAGNOSTICS_SONAME_SYMLINK): Likewise.
+ (LIBDIAGNOSTICS_LINKER_NAME_SYMLINK): Likewise.
+ (LIBDIAGNOSTICS_FILENAME): Likewise.
+ (libdiagnostics.serial): Likewise.
+ (LIBDIAGNOSTICS_EXTRA_OPTS): Likewise.
+ (install): If libdiagnostics is enabled, add
+ install-libdiagnostics.
+ (libdiagnostics.install-headers): New.
+ (libdiagnostics.install-common): New, adapted from code in
+ jit/Make-lang.in.
+ (install-libdiagnostics): New.
+ * diagnostic-format-text.h
+ (diagnostic_text_output_format::get_location_text): Make public.
+ * doc/install.texi (--enable-libdiagnostics): New.
+ * doc/libdiagnostics/Makefile: New file.
+ * doc/libdiagnostics/conf.py: New file.
+ * doc/libdiagnostics/index.rst: New file.
+ * doc/libdiagnostics/make.bat: New file.
+ * doc/libdiagnostics/topics/diagnostic-manager.rst: New file.
+ * doc/libdiagnostics/topics/diagnostics.rst: New file.
+ * doc/libdiagnostics/topics/execution-paths.rst: New file.
+ * doc/libdiagnostics/topics/fix-it-hints.rst: New file.
+ * doc/libdiagnostics/topics/index.rst: New file.
+ * doc/libdiagnostics/topics/logical-locations.rst: New file.
+ * doc/libdiagnostics/topics/message-formatting.rst: New file.
+ * doc/libdiagnostics/topics/metadata.rst: New file.
+ * doc/libdiagnostics/topics/physical-locations.rst: New file.
+ * doc/libdiagnostics/topics/retrofitting.rst: New file.
+ * doc/libdiagnostics/topics/sarif.rst: New file.
+ * doc/libdiagnostics/topics/text-output.rst: New file.
+ * doc/libdiagnostics/topics/ux.rst: New file.
+ * doc/libdiagnostics/tutorial/01-hello-world.rst: New file.
+ * doc/libdiagnostics/tutorial/02-physical-locations.rst: New file.
+ * doc/libdiagnostics/tutorial/03-logical-locations.rst: New file.
+ * doc/libdiagnostics/tutorial/04-notes.rst: New file.
+ * doc/libdiagnostics/tutorial/05-warnings.rst: New file.
+ * doc/libdiagnostics/tutorial/06-fix-it-hints.rst: New file.
+ * doc/libdiagnostics/tutorial/07-execution-paths.rst: New file.
+ * doc/libdiagnostics/tutorial/index.rst: New file.
+ * libdiagnostics++.h: New file.
+ * libdiagnostics.cc: New file.
+ * libdiagnostics.h: New file.
+ * libdiagnostics.map: New file.
+ * doc/libdiagnostics/tutorial/example-1.png: New file.
+
+2024-11-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/117357
+ * config/i386/i386.md (*rsqrtsf2_sse):
+ Also enable for !TARGET_SSE_MATH.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * timevar.def (TV_LATE_COMBINE): New timevar.
+ * late-combine.cc (pass_data_late_combine): Use it.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-early-ra.cc
+ (early_ra::IGNORE_REG): New flag.
+ (early_ra::fpr_preference): Handle it.
+ (early_ra::record_constraints): Fail the allocation if an
+ IGNORE_REG output operand is not independent of the inputs.
+ (defines_multi_def_pseudo): New function.
+ (early_ra::could_split_region_here): New member function, split
+ out from...
+ (early_ra::process_block): ...here. Try splitting a block into
+ multiple regions between the definition and use phases of an
+ instruction. Set IGNORE_REG on the output registers if we do so.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-early-ra.cc
+ (early_ra::process_block): Check m_accurate_live_ranges
+ rather than m_allocation_successful when deciding whether
+ to split a block into multiple regions. Skip over subregions
+ that we decide not to allocate.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-early-ra.cc
+ (early_ra::get_allocno_subgroup): Split can_change_mode_class test
+ out from modes_tieable_p test and only invalidate the live range
+ information for the former.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-early-ra.cc
+ (early_ra::record_allocation_failure): New member function.
+ (early_ra::get_allocno_subgroup): Use it instead of setting
+ m_allocation_successful directly.
+ (early_ra::record_constraints): Likewise.
+ (early_ra::allocate_colors): Likewise.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-early-ra.cc
+ (early_ra::record_live_range_failure): New member function.
+ (early_ra::m_accurate_live_ranges): New member variable.
+ (early_ra::start_new_region): Set m_accurate_live_ranges to true.
+ (early_ra::get_allocno_subgroup): Use record_live_range_failure
+ to abort the allocation on invalid subregs.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * config/aarch64/aarch64-early-ra.cc
+ (early_ra::record_insn_refs): Split into...
+ (early_ra::record_insn_defs, early_ra::record_insn_call)
+ (early_ra::record_insn_uses): ...this new functions.
+ (early_ra::process_block): Update accordingly.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116253
+ * diagnostic-core.h (class auto_diagnostic_nesting_level): New.
+ * diagnostic-format-sarif.cc (class sarif_builder): Update leading
+ comment re nesting of diagnostics.
+ (sarif_result::on_nested_diagnostic): Add nestingLevel property.
+ * diagnostic-format-text.cc (on_report_diagnostic): If we're
+ showing nested diagnostics, then print changes of location on a
+ new line, indented, and update m_last_location.
+ (diagnostic_text_output_format::build_prefix): If m_show_nesting,
+ then potentially add indentation and a bullet point.
+ (get_bullet_point_unichar): New.
+ (use_unicode_p): New.
+ (diagnostic_text_output_format::build_indent_prefix): New.
+ * diagnostic-format-text.h
+ (diagnostic_text_output_format::diagnostic_text_output_format):
+ Initialize m_show_nesting and m_show_nesting_levels.
+ (diagnostic_text_output_format::build_indent_prefix): New decl.
+ (diagnostic_text_output_format::show_nesting_p): New accessor
+ (diagnostic_text_output_format::show_locations_in_nesting_p):
+ Likewise.
+ (diagnostic_text_output_format::set_show_nesting): New.
+ (diagnostic_text_output_format::set_show_locations_in_nesting):
+ New.
+ (diagnostic_text_output_format::set_show_nesting_levels): New.
+ (diagnostic_text_output_format::m_show_nesting): New field.
+ (diagnostic_text_output_format::m_show_locations_in_nesting): New
+ field.
+ (diagnostic_text_output_format::m_show_nesting_levels): New field.
+ * diagnostic-global-context.cc
+ (auto_diagnostic_nesting_level::auto_diagnostic_nesting_level):
+ New.
+ (auto_diagnostic_nesting_level::~auto_diagnostic_nesting_level):
+ New.
+ * diagnostic-show-locus.cc (layout_printer::print): Temporarily
+ set DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE.
+ * diagnostic.cc (diagnostic_context::initialize): Update for
+ renaming of m_nesting_depth to m_group_nesting_depth and
+ initialize m_diagnostic_nesting_level.
+ (diagnostic_context::finish): Update for renaming of
+ m_nesting_depth to m_group_nesting_depth.
+ (diagnostic_context::report_diagnostic): Likewise.
+ (diagnostic_context::begin_group): Likewise.
+ (diagnostic_context::end_group): Likewise.
+ (diagnostic_context::push_nesting_level): New.
+ (diagnostic_context::pop_nesting_level): New.
+ (diagnostic_context::set_diagnostic_buffer): Update for renaming
+ of m_nesting_depth to m_group_nesting_depth. Assert that we don't
+ have nested diagnostics.
+ * diagnostic.h (diagnostic_context::push_nesting_level): New decl.
+ (diagnostic_context::pop_nesting_level): New decl.
+ (diagnostic_context::get_diagnostic_nesting_level): New accessor.
+ (diagnostic_context::build_indent_prefix): New decl.
+ (diagnostic_context::m_diagnostic_groups): Rename m_nesting_depth
+ to m_group_nesting_depth and add field m_diagnostic_nesting_level.
+ * doc/invoke.texi (fdiagnostics-add-output): Add note about
+ "experimental" schemes, keys, and values. Add keys
+ "experimental-nesting", "experimental-nesting-show-locations",
+ and "experimental-nesting-show-levels" to text scheme.
+ * opts-diagnostic.cc (text_scheme_handler::make_sink): Add keys
+ "experimental-nesting", "experimental-nesting-show-locations",
+ and "experimental-nesting-show-levels".
+
+2024-11-18 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/84211
+ * doc/invoke.texi (AVR Options) [-mfuse-move]: Document new option.
+ * common/config/avr/avr-common.cc (avr_option_optimization_table):
+ Set -mfuse-move= depending on optimization level.
+ * config/avr/avr.opt (-mfuse-move, -mfuse-move=): New options.
+ * config/avr/t-avr (avr-passes.o): Depend on avr-passes-fuse-move.h.
+ * config/avr/avr-passes-fuse-move.h: New file, used by avr-passes.cc.
+ * config/avr/avr-passes.def (avr_pass_fuse_move): Insert new pass.
+ * config/avr/avr-passes.cc (INCLUDE_ARRAY): Define it.
+ (insn-attr.h): Include it.
+ (avr_pass_data_fuse_move): New const pass_data.
+ (avr_pass_fuse_move): New public rtl_opt_pass class.
+ (make_avr_pass_fuse_move): New function.
+ (gprmask_t): New typedef.
+ (next_nondebug_insn_bb, prev_nondebug_insn_bb)
+ (single_set_with_scratch, size_to_mask, size_to_mode)
+ (emit_valid_insn, emit_valid_move_clobbercc)
+ (gpr_regno_p, regmask, has_bits_in)
+ (find_arith, find_arith2, any_shift_p): New local functions.
+ (AVRasm): New namespace.
+ (FUSE_MOVE_MAX_MODESIZE): New define.
+ (avr-passes-fuse-move.h): New include.
+ (memento_t, absint_t, absins_byte_t, absint_val_t)
+ (optimize_data_t, insn_optimizedata_t, find_plies_data_t)
+ (insninfo_t, bbinfo_t, ply_t, plies_t): New structs / classes.
+ * config/avr/avr-protos.h (avr_chunk, avr_byte, avr_word, avr_int8)
+ (avr_uint8, avr_int16, avr_uint16)
+ (avr_out_set_some, avr_set_some_operation)
+ (output_reload_in_const, make_avr_pass_fuse_move): New protos.
+ (avr_dump): Depend macro definition on GCC_DUMPFILE_H.
+ * config/avr/avr.cc (avr_option_override): Insert after
+ pass "avr-fuse-move" instead of after "peephole2".
+ (avr_chunk, avr_byte, avr_word, avr_int8, avr_uint8, avr_int16)
+ (avr_uint16, output_reload_in_const): Functions are no more static.
+ (avr_out_set_some, avr_set_some_operation): New functions.
+ (ashrqi3_out, ashlqi3_out) [offset=7]: Handle "r,r,C07" alternative.
+ (avr_out_insert_notbit): Comment also allows QImode.
+ (avr_adjust_insn_length) [ADJUST_LEN_SET_SOME]: Handle case.
+ * config/avr/avr.md (adjust_len) <set_some>: New attribute value.
+ (set_some): New insn.
+ (andqi3, *andqi3): Add "r,r,Cb1" alternative.
+ (ashrqi3, *ashrqi3 ashlqi3, *ashlqi3): Add a "r,r,C07" alternative.
+ (gen_move_clobbercc_scratch): New emit helper.
+ * config/avr/constraints.md (Cb1): New constraint.
+ * config/avr/predicates.md (dreg_or_0_operand, set_some_operation): New.
+ * config/avr/avr-log.cc (avr_forward_to_printf): New static func.
+ (avr_log_vadump): Use it to recognize more formats.
+
+2024-11-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/117594
+ * tree-vect-loop.cc (vectorizable_live_operation_1): Pass
+ factor == 1 to vect_get_loop_len, insert generated stmts.
+
+2024-11-18 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/117595
+ * config/riscv/sync.md (atomic_compare_and_swap<mode>): Use gen_lowpart
+ rather than simplify_gen_subreg.
+ * config/riscv/riscv.cc (riscv_legitimize_move): Similarly.
+
+2024-11-18 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/117659
+ * config/avr/avr.cc (avr_out_ashlpsi3) [case 16]: Use %A1 as
+ input (instead of bogus %A0).
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * config/riscv/autovec.md: Add VLS modes.
+ * config/riscv/vector-iterators.md: Ditto.
+ * config/riscv/vector.md: Ditto.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR middle-end/115336
+ PR middle-end/116059
+ * config/riscv/autovec.md: Add else operand.
+ * config/riscv/predicates.md (maskload_else_operand): New
+ predicate.
+ * config/riscv/riscv-v.cc (get_else_operand): Remove static.
+ (expand_load_store): Use get_else_operand and adjust index.
+ (expand_gather_scatter): Ditto.
+ (expand_lanes_load_store): Ditto.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * config/i386/sse.md (maskload<mode><sseintvecmodelower>):
+ Call maskload<mode>..._1.
+ (maskload<mode><sseintvecmodelower>_1): Rename.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * config/gcn/predicates.md (maskload_else_operand): New
+ predicate.
+ * config/gcn/gcn-valu.md: Use new predicate.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * config/aarch64/aarch64-sve-builtins-base.cc: Add else
+ handling.
+ * config/aarch64/aarch64-sve-builtins.cc (function_expander::use_contiguous_load_insn):
+ Ditto.
+ * config/aarch64/aarch64-sve-builtins.h: Add else operand to
+ contiguous load.
+ * config/aarch64/aarch64-sve.md (@aarch64_load<SVE_PRED_LOAD:pred_load>
+ _<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
+ Split and add else operand.
+ (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
+ Ditto.
+ (*aarch64_load_<ANY_EXTEND:optab>_mov<SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
+ Ditto.
+ * config/aarch64/aarch64-sve2.md: Ditto.
+ * config/aarch64/iterators.md: Remove unused iterators.
+ * config/aarch64/predicates.md (aarch64_maskload_else_operand):
+ Add zero else operand.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * optabs-query.cc (supports_vec_convert_optab_p): Return icode.
+ (get_supported_else_val): Return supported else value for
+ optab's operand at index.
+ (supports_vec_gather_load_p): Add else argument.
+ (supports_vec_scatter_store_p): Ditto.
+ * optabs-query.h (supports_vec_gather_load_p): Ditto.
+ (get_supported_else_val): Ditto.
+ * optabs-tree.cc (target_supports_mask_load_store_p): Ditto.
+ (can_vec_mask_load_store_p): Ditto.
+ (target_supports_len_load_store_p): Ditto.
+ (get_len_load_store_mode): Ditto.
+ * optabs-tree.h (target_supports_mask_load_store_p): Ditto.
+ (can_vec_mask_load_store_p): Ditto.
+ * tree-vect-data-refs.cc (vect_lanes_optab_supported_p): Ditto.
+ (vect_gather_scatter_fn_p): Ditto.
+ (vect_check_gather_scatter): Ditto.
+ (vect_load_lanes_supported): Ditto.
+ * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern):
+ Ditto.
+ * tree-vect-slp.cc (vect_get_operand_map): Adjust indices for
+ else operand.
+ (vect_slp_analyze_node_operations): Skip undefined else operand.
+ * tree-vect-stmts.cc (exist_non_indexing_operands_for_use_p):
+ Add else operand handling.
+ (vect_get_vec_defs_for_operand): Handle undefined else operand.
+ (check_load_store_for_partial_vectors): Add else argument.
+ (vect_truncate_gather_scatter_offset): Ditto.
+ (vect_use_strided_gather_scatters_p): Ditto.
+ (get_group_load_store_type): Ditto.
+ (get_load_store_type): Ditto.
+ (vect_get_mask_load_else): Ditto.
+ (vect_get_else_val_from_tree): Ditto.
+ (vect_build_one_gather_load_call): Add zero else operand.
+ (vectorizable_load): Use else operand.
+ * tree-vectorizer.h (vect_gather_scatter_fn_p): Add else
+ argument.
+ (vect_load_lanes_supported): Ditto.
+ (vect_get_mask_load_else): Ditto.
+ (vect_get_else_val_from_tree): Ditto.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * tree-if-conv.cc (predicate_load_or_store): Add zero else
+ operand and comment.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * internal-fn.cc (add_mask_and_len_args): Rename...
+ (add_mask_else_and_len_args): ...to this and add else handling.
+ (expand_partial_load_optab_fn): Use adjusted function.
+ (expand_partial_store_optab_fn): Ditto.
+ (expand_scatter_store_optab_fn): Ditto.
+ (expand_gather_load_optab_fn): Ditto.
+ (internal_fn_len_index): Add else handling.
+ (internal_fn_else_index): Ditto.
+ (internal_fn_mask_index): Ditto.
+ (get_supported_else_vals): New function.
+ (supported_else_val_p): New function.
+ (internal_gather_scatter_fn_supported_p): Add else operand.
+ * internal-fn.h (internal_gather_scatter_fn_supported_p): Define
+ else constants.
+ (MASK_LOAD_ELSE_ZERO): Ditto.
+ (MASK_LOAD_ELSE_M1): Ditto.
+ (MASK_LOAD_ELSE_UNDEFINED): Ditto.
+ (get_supported_else_vals): Declare.
+ (supported_else_val_p): Ditto.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ * doc/md.texi: Document masked load else operand.
+
+2024-11-18 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR tree-optimization/117646
+ * match.pd (`max<a,b>==0`): Add casts to `unsigned type`.
+
+2024-11-18 Jeff Law <jlaw@ventanamicro.com>
+
+ * ext-dce.cc (maybe_clear_subreg_promoted_p): New function.
+ (ext_dce_execute): Call it.
+
+2024-11-18 Maciej W. Rozycki <macro@orcam.me.uk>
+
+ * config/alpha/alpha.md (unaligned_store<mode>): Remove stray
+ `;;'.
+
+2024-11-18 John David Anglin <danglin@gcc.gnu.org>
+
+ PR target/69374
+ * doc/install.texi (Specific) <hppa*-hp-hpux11>: Update anchor
+ and heading to reflect removal of 32-bit hppa support on HP-UX.
+ Trim 32-bit related text.
+
2024-11-17 Florian Weimer <fweimer@redhat.com>
PR c/95445
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_ch4.adb (Expand_N_Case_Expression): Remove the test on
+ enclosing predicate function for the return optimization.
+ Rewrite it in the general case to catch all nondynamic predicates.
+ (Expand_N_If_Expression): Remove the test on enclosing predicate
+ function for the return optimization.
+
+2024-11-18 Bob Duff <duff@adacore.com>
+
+ * doc/gnat_rm/implementation_defined_characteristics.rst:
+ Remove Atomic_Synchronization.
+ * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+ Likewise.
+ * doc/gnat_rm/implementation_defined_pragmas.rst: DRY.
+ Consolidate documentation of Disable/Enable_Atomic_Synchronization.
+ * checks.adb: Comment fix.
+ * exp_util.ads: Likewise.
+ * targparm.ads: Likewise.
+ * types.ads: Likewise.
+ * gnat1drv.adb: Likewise. DRY.
+ * sem_prag.adb (Process_Disable_Enable_Atomic_Sync):
+ Change name of Atomic_Synchronization to start with
+ underscore.
+ (Process_Suppress_Unsuppress): No need to check Comes_From_Source for
+ Atomic_Synchronization anymore; _Atomic_Synchronization can never
+ come from source. (Anyway, it shouldn't be ignored; it should be
+ an error.)
+ * snames.ads-tmpl (Atomic_Synchronization):
+ Change name to start with underscore.
+ * switch-c.adb (Scan_Front_End_Switches):
+ Minor cleanup: Use 'in'.
+ * gnat_rm.texi: Regenerate.
+ * gnat_ugn.texi: Regenerate.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * sem_eval.adb (Eval_Indexed_Component): Clear Do_Range_Check on
+ the expressions if Kill_Range_Check is set on the node.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_util.adb (Remove_Init_Call): Rewrite a compound statement in
+ the Initialization_Statements of the variable as a null statement
+ instead of removing it.
+ * freeze.adb (Explode_Initialization_Compound_Statement): Small
+ comment tweaks.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_aggr.adb (UI_Are_In_Int_Range): New predicate.
+ (Aggr_Size_OK): Use it.
+ (Flatten): Likewise.
+ (Packed_Array_Aggregate_Handled): Likewise.
+ (Static_Array_Aggregate): Likewise.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * freeze.ads (Explode_Initialization_Compound_Statement): Adjust the
+ description.
+ * freeze.adb (Explode_Initialization_Compound_Statement): If the
+ entity has its freezing delayed, append the initialization actions
+ to its freeze actions.
+ (Freeze_Object_Declaration): Remove commented out code.
+ (Freeze_Entity): Remove bypass for object of anonymous array type.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_sel.ads (Build_Abort_Block): Remove second parameter and
+ rename the third.
+ (Build_Abort_Block_Handler): Fix description.
+ * exp_sel.adb (Build_Abort_Block): Remove second parameter, rename
+ the third and adjust accordingly.
+ * exp_ch9.adb (Expand_N_Asynchronous_Select): Fix the description
+ of the exception handler throughout. Remove Abort_Block_Ent and
+ Hdle local variables. Call Build_Abort_Block consistently to build
+ the abort block and adjust existing calls.
+
+2024-11-18 Steve Baird <baird@adacore.com>
+
+ * exp_aggr.adb (Convert_To_Positional.Flatten): Avoid raising
+ Constraint_Error in UI_To_Int by testing UI_Is_In_Int_Range first.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_aggr.adb (Build_Array_Aggr_Code): Build the simple assignment
+ for the case of an aggregate that can be handled by the back end.
+ (Expand_Array_Aggregate): Adjust description of the processing.
+ Move handling of declaration case to STEP 4 and remove handling of
+ the case of an aggregate that can be processed by the back end.
+ (Late_Expansion): Likewise for the second part.
+ * exp_ch3.adb (Expand_N_Object_Declaration): Deal with a delayed
+ aggregate synthesized for the default initialization, if any.
+ * sem_eval.adb (Eval_Indexed_Component): Bail out for the name of
+ an assignment statement.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_aggr.adb (In_Place_Assign_OK): Remove handling of allocators
+ and call Must_Slide instead of implementing the check manually.
+ (Convert_To_Assignments): Adjust outdated comment.
+ (Expand_Array_Aggregate): Move handling of allocator case to STEP 3
+ and call Must_Slide directly for it.
+ (Must_Slide): Replace tests based on Is_OK_Static_Expression with
+ tests based on Compile_Time_Known_Value.
+
+2024-11-18 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_aggr.adb (Convert_Array_Aggr_In_Allocator): Delete.
+ (Convert_Aggr_In_Allocator): Do not call above procedure.
+ (Late_Expansion): Deal with a target that is the dereference of a
+ prefix with a Storage_Model. Remove an useless actual parameter
+ in the call to Build_Array_Aggr_Code.
+
+2024-11-18 Javier Miranda <miranda@adacore.com>
+
+ * sem_res.adb (Resolve_Actuals): Add by default a null-exclusion
+ check on the prefix of the call when it is an access-type; it can
+ be disabled using -gnatd_P.
+ * debug.adb (gnatd_P): Update documentation.
+
+2024-11-18 squirek <squirek@adacore.com>
+
+ * accessibility.adb (Accessibility_Level): Handle the Input attribute
+ case
+
+2024-11-18 Ronan Desplanques <desplanques@adacore.com>
+
+ * frontend.adb (Frontend): tweak test for predefined main unit.
+
2024-11-14 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.cc (elaborate_expression_2): Do not divide and
+2024-11-18 Joseph Myers <josmyers@redhat.com>
+
+ PR c/112556
+ * gcc.dg/c11-null-pointer-constant-1.c,
+ gcc.dg/c23-null-pointer-constant-1.c: New tests.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/96032
+ * lib/gcc-dg.exp (gcc-dg-test-1): Add "replay-sarif".
+ * lib/sarif-replay-dg.exp: New file.
+ * lib/sarif-replay.exp: New file.
+ * sarif-replay.dg/2.1.0-invalid/3.1-not-an-object.sarif: New test.
+ * sarif-replay.dg/2.1.0-invalid/3.11.11-malformed-placeholder.sarif:
+ New test.
+ * sarif-replay.dg/2.1.0-invalid/3.11.11-missing-arguments-for-placeholders.sarif:
+ New test.
+ * sarif-replay.dg/2.1.0-invalid/3.11.11-not-enough-arguments-for-placeholders.sarif:
+ New test.
+ * sarif-replay.dg/2.1.0-invalid/3.13.2-no-version.sarif: New test.
+ * sarif-replay.dg/2.1.0-invalid/3.13.2-version-not-a-string.sarif:
+ New test.
+ * sarif-replay.dg/2.1.0-invalid/3.13.4-bad-runs.sarif: New test.
+ * sarif-replay.dg/2.1.0-invalid/3.13.4-no-runs.sarif: New test.
+ * sarif-replay.dg/2.1.0-invalid/3.13.4-non-object-in-runs.sarif:
+ New test.
+ * sarif-replay.dg/2.1.0-invalid/3.27.10-bad-level.sarif: New test.
+ * sarif-replay.dg/2.1.0-unhandled/3.27.10-none-level.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/error-with-note.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/escaped-braces.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/null-runs.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/signal-1.c.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/spec-example-1.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/spec-example-2.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/spec-example-3.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/spec-example-4.sarif: New test.
+ * sarif-replay.dg/2.1.0-valid/tutorial-example.sarif: New test.
+ * sarif-replay.dg/dg.exp: New script.
+ * sarif-replay.dg/malformed-json/array-missing-comma.sarif: New test.
+ * sarif-replay.dg/malformed-json/array-with-trailing-comma.sarif:
+ New test.
+ * sarif-replay.dg/malformed-json/bad-token.sarif: New test.
+ * sarif-replay.dg/malformed-json/object-missing-comma.sarif: New test.
+ * sarif-replay.dg/malformed-json/object-with-trailing-comma.sarif:
+ New test.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ * libdiagnostics.dg/libdiagnostics.exp: New, adapted from jit.exp.
+ * libdiagnostics.dg/sarif.py: New.
+ * libdiagnostics.dg/test-dump.c: New test.
+ * libdiagnostics.dg/test-error-c.py: New test.
+ * libdiagnostics.dg/test-error-with-note-c.py: New test.
+ * libdiagnostics.dg/test-error-with-note.c: New test.
+ * libdiagnostics.dg/test-error-with-note.cc: New test.
+ * libdiagnostics.dg/test-error.c: New test.
+ * libdiagnostics.dg/test-error.cc: New test.
+ * libdiagnostics.dg/test-example-1.c: New test.
+ * libdiagnostics.dg/test-fix-it-hint-c.py: New test.
+ * libdiagnostics.dg/test-fix-it-hint.c: New test.
+ * libdiagnostics.dg/test-fix-it-hint.cc: New test.
+ * libdiagnostics.dg/test-helpers++.h: New test.
+ * libdiagnostics.dg/test-helpers.h: New test.
+ * libdiagnostics.dg/test-labelled-ranges.c: New test.
+ * libdiagnostics.dg/test-labelled-ranges.cc: New test.
+ * libdiagnostics.dg/test-labelled-ranges.py: New test.
+ * libdiagnostics.dg/test-logical-location-c.py: New test.
+ * libdiagnostics.dg/test-logical-location.c: New test.
+ * libdiagnostics.dg/test-metadata-c.py: New test.
+ * libdiagnostics.dg/test-metadata.c: New test.
+ * libdiagnostics.dg/test-multiple-lines-c.py: New test.
+ * libdiagnostics.dg/test-multiple-lines.c: New test.
+ * libdiagnostics.dg/test-no-column-c.py: New test.
+ * libdiagnostics.dg/test-no-column.c: New test.
+ * libdiagnostics.dg/test-no-diagnostics-c.py: New test.
+ * libdiagnostics.dg/test-no-diagnostics.c: New test.
+ * libdiagnostics.dg/test-note-with-fix-it-hint-c.py: New test.
+ * libdiagnostics.dg/test-note-with-fix-it-hint.c: New test.
+ * libdiagnostics.dg/test-text-sink-options.c: New test.
+ * libdiagnostics.dg/test-warning-c.py: New test.
+ * libdiagnostics.dg/test-warning-with-path-c.py: New test.
+ * libdiagnostics.dg/test-warning-with-path.c: New test.
+ * libdiagnostics.dg/test-warning.c: New test.
+ * libdiagnostics.dg/test-write-sarif-to-file-c.py: New test.
+ * libdiagnostics.dg/test-write-sarif-to-file.c: New test.
+ * libdiagnostics.dg/test-write-text-to-file.c: New test.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ * lib/dg-test-cleanup.exp: New file, from material moved from
+ lib/gcc-dg.exp.
+ * lib/gcc-dg.exp: Add load_lib of dg-test-cleanup.exp.
+ (cleanup-after-saved-dg-test): Move to lib/dg-test-cleanup.exp.
+ (dg-test): Likewise for override.
+ (initialize_prune_notes): Likewise.
+
+2024-11-18 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/117357
+ * gcc.target/i386/pr117357.c: New test.
+
+2024-11-18 Martin Uecker <uecker@tugraz.at>
+
+ PR testsuite/117419
+ * gcc.dg/enum-alias-1.c: Add __INT_MAX__.
+ * gcc.dg/enum-alias-2.c: Likewise.
+ * gcc.dg/enum-alias-3.c: Likewise.
+
+2024-11-18 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.target/aarch64/early_ra_1.c: New test.
+
+2024-11-18 David Malcolm <dmalcolm@redhat.com>
+
+ PR other/116253
+ * gcc.dg/plugin/diagnostic-test-nesting-sarif.c: New test.
+ * gcc.dg/plugin/diagnostic-test-nesting-sarif.py: New test.
+ * gcc.dg/plugin/diagnostic-test-nesting-text-indented-show-levels.c:
+ New test.
+ * gcc.dg/plugin/diagnostic-test-nesting-text-indented-unicode.c:
+ New test.
+ * gcc.dg/plugin/diagnostic-test-nesting-text-indented.c: New test.
+ * gcc.dg/plugin/diagnostic-test-nesting-text-plain.c: New test.
+ * gcc.dg/plugin/diagnostic_plugin_test_nesting.c: New test plugin.
+ * gcc.dg/plugin/plugin.exp: Add the above.
+
+2024-11-18 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/84211
+ * gcc.target/avr/torture/test-gprs.h: New file.
+ * gcc.target/avr/torture/pr84211-fuse-move-1.c: New test.
+ * gcc.target/avr/torture/pr84211-fuse-move-2.c: New test.
+
+2024-11-18 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/53357
+ * gfortran.dg/auto_char_len_4.f90: Adjust patterns.
+ * gfortran.dg/typebound_override_1.f90: Likewise.
+ * gfortran.dg/bounds_check_strlen_10.f90: New test.
+
+2024-11-18 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/117594
+ * gcc.dg/vect/pr117594.c: New testcase.
+
+2024-11-18 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/117595
+ * gcc.target/riscv/pr117595.c: New test.
+
+2024-11-18 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/117660
+ * gm2/iso/fail/arraymismatch.mod: New test.
+
+2024-11-18 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/117371
+ * gm2/iso/fail/forloopbyzero.mod: New test.
+
+2024-11-18 Jennifer Schmitz <jschmitz@nvidia.com>
+
+ PR tree-optimization/117093
+ * gcc.dg/tree-ssa/pr117093.c: Move to gcc.target/aarch64.
+ * gcc.target/aarch64/pr117093.c: New test.
+
+2024-11-18 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR middle-end/115336
+ PR middle-end/116059
+ * gcc.target/riscv/rvv/autovec/pr115336.c: New test.
+ * gcc.target/riscv/rvv/autovec/pr116059.c: New test.
+
+2024-11-18 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR tree-optimization/117646
+ * gcc.dg/torture/minmaxneeqptr-1.c: New test.
+
+2024-11-18 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/modules/dep-4.H: New test.
+
+2024-11-18 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR testsuite/117494
+ * gcc.dg/vect/pr101145inf.c: Remove dg-do and replace
+ with dg-require-effective-target of signal.
+ * gcc.dg/vect/pr101145inf_1.c: Likewise.
+ * gcc.dg/vect/pr101145inf.inc: Rename main to main1
+ and mark as noinline.
+ Include tree-vect.h. Have main call check_vect and main1.
+
+2024-11-18 Jeff Law <jlaw@ventanamicro.com>
+
+ * gcc.target/riscv/ext-dce-1.c: New test.
+
2024-11-17 Florian Weimer <fweimer@redhat.com>
PR c/95445