Daily bump.

This commit is contained in:
GCC Administrator 2025-12-13 00:16:34 +00:00
parent 3cb51cda4c
commit bcbb536551
19 changed files with 1969 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz>
* MAINTAINERS: add myself to write after approval
2025-12-11 Jeff Law <jlaw@ventanamicro.com> 2025-12-11 Jeff Law <jlaw@ventanamicro.com>
* MAINTAINERS: Update entries for contributors formerly at * MAINTAINERS: Update entries for contributors formerly at

View File

@ -1,3 +1,8 @@
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
Jiajie Chen <c@jia.je>
* config-list.mk: Add loongarch32-linux-gnu*.
2025-12-11 Joseph Myers <josmyers@redhat.com> 2025-12-11 Joseph Myers <josmyers@redhat.com>
* test_installed: Use config.sub to determine canonical target. * test_installed: Use config.sub to determine canonical target.

View File

@ -1,3 +1,205 @@
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* gimplify.cc (gimplify_scan_omp_clauses): Handle uses_allocators
by printing a 'sorry, unimplemented' and removing it.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_USES_ALLOCATORS.
* tree.cc (omp_clause_num_ops, omp_clause_code_name): Likewise.
* tree-pretty-print.cc (dump_omp_clause): Handle it.
* tree.h (OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR,
OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE,
OMP_CLAUSE_USES_ALLOCATORS_TRAITS): New.
2025-12-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
PR tree-optimization/103680
* tree-loop-distribution.cc (destroy_loop): Set probability
of the exit edge to be always.
2025-12-12 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
PR tree-optimization/103680
* tree-cfg.cc (make_forwarders_with_degenerate_phis): Fix
initial value of the count to new bb.
2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
* config/s390/s390.cc (s390_expand_builtin): Warn about
non-overloaded deprecated builtins.
2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
* config/s390/s390-c.cc (s390_adjust_builtin_arglist): Fix
builtin s390_vec_load_bndry for C++.
2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
* config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
Perform array-to-pointer conversion for C++.
2025-12-12 David Malcolm <dmalcolm@redhat.com>
PR analyzer/122003
* Makefile.in (ANALYZER_OBJS): Add analyzer/ops.o,
analyzer/supergraph-fixup-locations.o,
analyzer/supergraph-simplify.o, and analyzer/supergraph-sorting.o.
* digraph.h (dnode::add_in_edge): New.
(dnode::remove_in_edge): New.
(dnode::add_out_edge): New.
(dnode::remove_out_edge): New.
(dnode::m_preds): Make public.
(dnode::m_succs): Likewise.
(dnode::find_edge_idx): New.
(dedge::edge_t): New typedef.
(dedge::m_src): Make non-const.
(dedge::m_dest): Likewise.
(dedge::set_dest): New.
(digraph::add_any_extra_stmts): New.
(digraph<GraphTraits>::dump_dot_to_pp): Call it.
* doc/analyzer.texi: Update for rewrite of supergraph.
* doc/invoke.texi (fanalyzer-fine-grained): Make this as a no-op
preserved for backwards compatibility.
(fanalyzer-simplify-supergraph): Document new option.
(fdump-analyzer-supergraph): Update for changes to output.
* gdbhooks.py (AnaSupernodePrinter.to_string): Update for renaming
of supernode::m_index to supernode::m_id.
* system.h: Include <deque> if INCLUDE_DEQUE was defined.
2025-12-12 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/121852
* rtlanal.cc (single_set_2): Only look for REG_UNUSED notes if
df && df_note, otherwise if df and SET_DEST is a pseudo with
DF_REG_USE_COUNT 0, assume it is unused as well. Otherwise
assume it may be used.
2025-12-12 Tejas Belagod <tejas.belagod@arm.com>
Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.cc (aarch64_instruction_selection): Flip
svbool_t == to != to avoid extra bit-inverse.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* config/loongarch/loongarch.cc (loongarch_block_move_loop): Change
length, align to unsigned.
(loongarch_expand_block_move): Ditto.
2025-12-12 Jiajie Chen <c@jia.je>
* config/loongarch/loongarch.cc (loongarch_emit_int_compare):
Call trunc_int_mode to ensure valid rhs.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* config/loongarch/predicates.md: Add CONSTM1_RTX for low_bitmask_operand.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* config/loongarch/larchintrin.h (__movgr2fcsr): Disable on soft float.
(__cacop_w): New.
(__lddir_d): Delete #error.
(__ldpte_d): Likewise.
(__crc_w_w_w): Disable on LA32
(__crc_w_d_w): Likewise.
(__crcc_w_w_w): Likewise.
* config/loongarch/loongarch-builtins.cc : Disable some builtin on LA32.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
Jiajie Chen <c@jia.je>
* config/loongarch/loongarch-opts.cc (loongarch_target_option_override):
Delete opts->x_flag_pcc_struct_return and enable mstrict-align by
default on LA32.
* config/loongarch/loongarch.cc (loongarch_for_each_saved_reg): Save reg
depend on float abi.
(loongarch_explicit_relocs_p): Disable explicit relocs on LA32.
(loongarch_valid_offset_p): Disable const_imm16_operand with 4 byte aligned.
(loongarch_valid_lo_sum_p): Allow lo_sum to be used with DF in ilp32d.
(loongarch_valid_index_p): Disable ADDRESS_REG_REG on LA32.
(loongarch_legitimize_address): Disable mem_shadd_or_shadd_rtx_p on LA32.
(loongarch_output_move_index): Assert TARGET_64BIT for ldx/stx.
(loongarch_output_move): Disable ldptr/stptr if offset is 0.
(loongarch_output_equal_conditional_branch): Disable beqz/bnez on LA32R.
(loongarch_trampoline_init): Change pcaddi to pcaddu12i.
(loongarch_get_separate_components): Disable ldptr/stptr on LA32.
(loongarch_c_mode_for_floating_type): Use TFmode for long double
regardless of target bitness.
(loongarch_bitint_type_info): Disable BitInt on LA32.
(loongarch_call_tls_get_addr): Use call30 on LA32.
(loongarch_split_move): Add split for DI, DF, TF.
* config/loongarch/loongarch.h (LA_LONG_DOUBLE_TYPE_SIZE): Set
LONG_DOUBLE_TYPE_SIZE to 128 regardless of target bitness.
(MAX_FIXED_MODE_SIZE): Set to 64 on LA32.
(DEFAULT_PCC_STRUCT_RETURN): New.
(STACK_BOUNDARY): Set to 128 on LA64 and LA32.
(LARCH_STACK_ALIGN): Set to 16 on LA64 and LA32.
(TRAMPOLINE_SIZE): Set to same value on LA64 and LA32.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
Jiajie Chen <c@jia.je>
* config/loongarch/constraints.md: Disable k on LA32.
* config/loongarch/loongarch.md (*and<mode>3): Delete.
(*and<mode>3_extend): New.
(zero_extend<SHORT:mode><GPR:mode>2_la32r): New.
(extend<SHORT:mode><GPR:mode>2_la32r): New.
(extendqihi2_la32r): New.
(*movdi_32bit): Remove not working split, use existing
loongarch_split_move instead.
(move_doubleword_2_<mode>): New.
(load_low<mode>): New.
(load_high<mode>): New.
(store_word<mode>): New.
(movgr2frh<mode>): New.
(movfrh2gr<mode>): New.
* config/loongarch/predicates.md: Disable low_bitmask_operand and
ins_zero_bitmask_operand on LA32. Enable const_call_insn_operand on LA32.
* config/loongarch/sync.md (atomic_<amop><mode>): Change to define_expand.
(la64_atomic_<amop><mode>): New.
(la32_atomic_<amop>si): New.
(atomic_fetch_<amop><mode>): Change to define_expand.
(la64_atomic_fetch_<amop><mode>): New.
(la32_atomic_fetch_<amop>si): New.
(atomic_exchange<mode>): Change to define_expand.
(la64_atomic_exchange<mode>): New.
(la32_atomic_exchangesi): New.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
Jiajie Chen <c@jia.je>
* config.gcc: Add target triple loongarch32-*-*-* and
corresponding abi ilp32f, ilp32d and ilp32s.
* config/loongarch/genopts/loongarch-strings: Add strings for
loongarch32 and ilp32 abi variants.
* config/loongarch/genopts/loongarch.opt.in: Add
-march=la32v1.0/la32rv1.0 and -mabi=ilp32d/ilp32f/ilp32s.
* config/loongarch/gnu-user.h: Add ilp32 abi variants to spec.
* config/loongarch/linux.h: Add ABI_LIBDIR for ilp32 abi
variants.
* config/loongarch/loongarch-c.cc (loongarch_define_unconditional_macros):
Add builtin definitions for loongarch32 target.
* config/loongarch/loongarch-def.cc: Add loongarch32 and ilp32
definitions.
* config/loongarch/loongarch-def.h: Add loongarch32 and ilp32
definitions.
* config/loongarch/loongarch-driver.h: Add ilp32 abi variants to
spec.
* config/loongarch/loongarch-opts.cc: Handle ilp32 abi variants.
* config/loongarch/loongarch-opts.h: Add loongarch32 case to
macros.
* config/loongarch/loongarch-str.h: Add loongarch32 and ilp32
strings.
* config/loongarch/loongarch.opt: Add -march=la32v1.0/la32rv1.0
and -mabi=ilp32d/ilp32f/ilp32s.
* config/loongarch/t-linux: Add ilp32 abi variants to multilib.
* doc/invoke.texi: Add LA32 arch and tune.
2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz>
* common.opt.urls: Regenerate.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
* config/arc/arc.cc (hwloop_optimize): Fix comment typo, * config/arc/arc.cc (hwloop_optimize): Fix comment typo,

View File

@ -1 +1 @@
20251212 20251213

View File

@ -1,3 +1,16 @@
2025-12-12 Jose E. Marchesi <jose.marchesi@oracle.com>
* a68-parser-scanner.cc (a68_lexical_analyser): New argument
empty_program.
* a68.h: Update prototype of a68_lexical_analyser.
* a68-parser.cc (a68_parser): Emit error for empty input files.
2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz>
* ga68.texi (@opindex I): Expand.
(@oindex L): New.
* lang.opt.urls: Regenerate.
2025-12-10 Jose E. Marchesi <jose.marchesi@oracle.com> 2025-12-10 Jose E. Marchesi <jose.marchesi@oracle.com>
* lang.opt: Add entry for OPT_L. * lang.opt: Add entry for OPT_L.

View File

@ -1,3 +1,919 @@
2025-12-12 David Malcolm <dmalcolm@redhat.com>
* analyzer.opt.urls: Regenerate.
2025-12-12 David Malcolm <dmalcolm@redhat.com>
PR analyzer/122003
* analyzer-logging.h (class log_nesting_level): New.
(log_nesting_level::log_nesting_level): New.
(log_nesting_level::~log_nesting_level): New.
* analyzer.cc (is_cxa_end_catch_p): New.
* analyzer.opt (fdump-analyzer-callgraph): Make this as a no-op
preserved for backwards compatibility.
(fanalyzer-fine-grained): Likewise.
(fanalyzer-simplify-supergraph): New.
* bounds-checking.cc (strip_types): Update for changes to
widening_svalue.
* call-details.h: Include "pending-diagnostic.h".
* call-info.cc (custom_edge_info::get_dot_attrs): New.
(call_info::add_events_to_path): Add pending_diagnostic & param.
Fix indentation.
* call-info.h (call_info::add_events_to_path): Add
pending_diagnostic & param.
* call-string.cc (call_string::element_t::operator==): Reimplement.
(call_string::element_t::cmp): New.
(call_string::element_t::get_caller_function): Likewise.
(call_string::element_t::get_callee_function): Likewise.
(call_string::element_t::get_call_snode_in_caller): New.
(call_string::element_t::get_return_snode_in_caller): New.
(call_string::element_t::get_call_stmt): New.
(call_string::print): Update for new implementation.
(call_string::to_json): Likewise.
(call_string::push_call): Likewise.
(call_string::count_occurrences_of_function): Likewise.
(call_string::cmp): Likewise.
(call_string::get_callee_node): Delete.
(call_string::get_caller_node): Convert into...
(call_string::get_return_node_in_caller): ...this new function.
(call_string::validate): Update for new implementation.
(call_string::recursive_log): Likewise.
* call-string.h (class call_superedge): Delete forward decl.
(class return_superedge): Likewise.
(class call_and_return_op): New forward decl.
(struct call_string::element_t): Reimplement using
call_and_return_op, rather than relying on interprocedural edges
in the supergraph.
(class call_string): Likewise.
* call-summary.cc (call_summary::get_fndecl): Reimplement.
(call_summary_replay::convert_svalue_from_summary_1): Update for
changes to widening_svalue.
* checker-event.cc (event_kind_to_string): Update for renamings
of event_kind::{call_edge -> call_} and
event_kind::{return_edge -> return_}.
(region_creation_event_debug::print_desc): Update for change to
event_loc_info.
(state_change_event::state_change_event): Pass in event_loc_info
rather than stack_depth, and pass it to checker_event ctor.
(superedge_event::get_callgraph_superedge): Delete.
(superedge_event::should_filter_p): Reimplement in terms of
get_any_cfg_edge.
(superedge_event::get_call_and_return_op): New.
(superedge_event::superedge_event): Drop m_eedge and
m_critical_state. Add assertion that the superedge is non-null.
(cfg_edge_event::get_cfg_superedge): Delete.
(cfg_edge_event::cfg_edge_event): Add "op" param, and remove
assertion refering to kinds of superedge.
(cfg_edge_event::get_meaning): Reimplement without
cfg_superedge.
(cfg_edge_event::get_cfg_edge): New.
(start_cfg_edge_event::print_desc): Use m_op. Update for renaming
of superedge::m_index to superedge::m_id.
(start_cfg_edge_event::maybe_describe_condition): Reimplement in
ops.cc as gcond_edge_op::maybe_describe_condition.
(start_cfg_edge_event::should_print_expr_p): Reimplement in ops.cc
as gcond_edge_op::should_print_expr_p.
(call_event::call_event): Update for renaming of event_kind. Drop
assertion about superedge kind.
(call_event::print_desc): Update for consolidation of m_var and
m_critical_state into a struct.
(return_event::return_event): Inherit directly from checker_event.
Drop assertion referring to kinds of superedge. Initialize m_edge
and m_call_and_return_op.
(return_event::print_desc): Update for change to m_critical_state.
* checker-event.h (enum class event_kind): Rename call_edge to
call_, and return_edge to return_.
(state_change_event::state_change_event): Update for changes to
location-handling in base class ctor.
(state_change_event::record_critical_state): Drop this, moving
it to special-cases in the subclasses that need it.
(state_change_event::get_callgraph_superedge): Delete.
(superedge_event::get_call_and_return_op): New vfunc decl.
(superedge_event::m_var, superedge_event::m_critical_state): Drop
these fields from this class, combining them into a new struct
and moving the fields to the interprocedural event subclasses
where they make sense.
(cfg_edge_event::get_cfg_superedge): Delete.
(cfg_edge_event::get_cfg_edge): Add.
(cfg_edge_event::cfg_edge_event): Update for changes to location
handling in base class ctor. Add "op".
(cfg_edge_event::m_op): New field.
(start_cfg_edge_event::start_cfg_edge_event): Update for changes
to base class ctor.
(start_cfg_edge_event::maybe_describe_condition): Drop.
(end_cfg_edge_event::end_cfg_edge_event): Update for changes to
base class ctor.
(catch_cfg_edge_event::catch_cfg_edge_event): Likewise.
(struct critical_state): New struct.
(call_event::record_critical_state): New decl.
(call_event::m_critical_state): New field.
(class return_event): Inherit from checker_event, rather than
superedge_event.
(return_event::get_call_and_return_op): New.
(return_event::record_critical_state): New.
(return_event::m_call_and_return_op): New field.
(return_event::m_critical_state): New field.
* common.h: Define INCLUDE_SET.
(class cfg_superedge): Drop forward decl.
(class switch_cfg_superedge): Likewise.
(class eh_dispatch_cfg_superedge): Likewise.
(class eh_dispatch_try_cfg_superedge): Likewise.
(class eh_dispatch_allowed_cfg_superedge): Likewise.
(class callgraph_superedge): Likewise.
(class call_superedge): Likewise.
(class return_superedge): Likewise.
(class stmt_finder): Likewise.
(class function_point): Likewise.
(class feasibility_state): New forward decl.
(class uncertainty_t): Likewise.
(useful_location_p): New.
(known_function::check_any_preconditions): New.
(custom_edge_info::get_dot_attrs): New decl.
(custom_edge_info::add_events_to_path): Add param
"pending_diagnostic &pd".
(is_cxa_end_catch_p): New decl.
* constraint-manager.cc
(bounded_ranges_manager::get_or_create_ranges_for_switch): Delete.
(bounded_ranges_manager::create_ranges_for_switch): Delete.
* constraint-manager.h
(bounded_ranges_manager::get_or_create_ranges_for_switch): Delete
decl.
(bounded_ranges_manager::create_ranges_for_switch): Likewise.
(bounded_ranges_manager::make_case_label_ranges): Make public for
use by ops code.
(bounded_ranges_manager::edge_cache_t): Delete.
(bounded_ranges_manager::m_edge_cache): Delete.
* diagnostic-manager.cc (pending_location::pending_location): New
ctor implementations.
(pending_location::to_json): New.
(epath_finder::get_best_epath): Rename param to "target_enode".
Drop param "target_stmt". Update for renaming of
supernode::m_index to m_id.
(epath_finder::explore_feasible_paths): Drop param "target_stmt".
(process_worklist_item): Likewise.
(saved_diagnostic::saved_diagnostic): Pass in param "ploc" by
rvalue reference and store it in m_ploc. Drop m_stmt_finder and
other fields made redundant by m_ploc.
(saved_diagnostic::get_supernode): New.
(saved_diagnostic::operator==): Update for changes to
location-tracking.
(saved_diagnostic::to_json): Update.
(saved_diagnostic::dump_as_dot_node): Drop m_stmt.
(saved_diagnostic::calc_best_epath): Update for change to
location-tracking.
(saved_diagnostic::supercedes_p): Likewise.
(saved_diagnostic::maybe_add_sarif_properties): Likewise.
(get_emission_location): Delete.
(diagnostic_manager::add_diagnostic): Pass "ploc" by rvalue
reference, moving it to the saved_diagnostic. Update early
rejection check, and call fixup_location before-hand.
(class dedupe_key): Drop m_stmt field, and update for changes
to saved_diagnostic.
(dedupe_winners::add): Call get_best_epath here, and call
fixer_for_epath on it.
(diagnostic_manager::emit_saved_diagnostics): Update for
changes to saved_diagnostic and supernode.
(diagnostic_manager::emit_saved_diagnostic): Likewise.
Use the pending_location from the saved_diagnostic for the
location of the final event, and for the primary location of the
diagnostic itself.
(diagnostic_manager::build_emission_path): Use useful_location_p.
(state_change_event_creator::on_global_state_change): Update for
changes to location-tracking.
(state_change_event_creator::on_state_change): Likewise.
(struct null_assignment_sm_context): Reimplement within ops.cc.
(diagnostic_manager::add_events_for_eedge): Reimplement.
(diagnostic_manager::add_events_for_superedge): Delete in favor of
control_flow_op::add_any_events_for_eedge.
(diagnostic_manager::prune_for_sm_diagnostic): Update call/return
for event_kind renamings, and to use call_and_return_op rathern
than callgraph_superedge.
(diagnostic_manager::consolidate_conditions): Port from
cfg_superedge to get_cfg_edge.
* diagnostic-manager.h: Include "analyzer/supergraph.h" and
"analyzer/event-loc-info.h".
(struct pending_location): Move decl earlier in file. Replace
the existing specified ctors with 3 new ones. Add comments.
(class pending_location::fixer_for_epath): New.
(pending_location::get_location): New.
(pending_location::to_json): New decl.
(pending_location::m_snode): Drop redundant field.
(pending_location::m_event_loc_info): New field, replacing m_stmt
and m_loc.
(pending_location::m_finder): Replace with...
(pending_location::m_fixer_for_epath): ...this new field.
(make_ploc_fixer_for_epath_for_leak_diagnostic): New decl.
(saved_diagnostic::saved_diagnostic): Pass in param "ploc" by
rvalue reference and store it in m_ploc.
(saved_diagnostic::get_supernode): New.
(saved_diagnostic::m_ploc): New field, replacing m_enode,
m_snode, m_stmt, m_stmt_finder, and m_loc.
(diagnostic_manager::add_diagnostic): Pass ploc as rvalue
reference.
(diagnostic_manager::add_events_for_superedge): Delete decl.
* engine.cc: Include "gimple-predict.h" and
"analyzer/impl-sm-context.h".
(impl_region_model_context::impl_region_model_context): Drop
stmt_finder.
(impl_region_model_context::warn): Convert to...
(impl_region_model_context::warn_at): ...this.
(class impl_sm_context): Move to impl-sm-context.h.
(impl_region_model_context::get_state_map_by_name): Drop
m_stmt_finder.
(class leak_stmt_finder): Reimplement as...
(class leak_ploc_fixer_for_epath): ...this.
(make_ploc_fixer_for_epath_for_leak_diagnostic): New.
(returning_from_function_p): Update for supergraph changes.
(impl_region_model_context::on_state_leak): Port from
leak_stmt_finder to leak_ploc_fixer_for_epath.
(impl_region_model_context::on_condition): Update for
location-handling changes.
(impl_region_model_context::on_bounded_ranges): Likewise.
(impl_region_model_context::on_phi): Likewise.
(impl_region_model_context::get_pending_location_for_diag): New.
(exploded_node::status_to_str): Add status::special.
(exploded_node::get_processed_stmt): Delete.
(exploded_node::dump_dot): Elide state if we have a single
predecessor and the state hasn't changed.
(exploded_node::dump_processed_stmts): Delete.
(exploded_node::on_stmt): Delete, reimplementing in ops.cc as
gimple_stmt_op::execute_on_state, call_and_return_op::execute, and
operation::handle_on_stmt_for_state_machines.
(exploded_node::on_stmt_pre): Delete, reimplementing in ops.cc as
call_and_return_op::make.
(exploded_node::on_stmt_post): Delete.
(class call_summary_edge_info): Move to ops.cc.
(exploded_node::replay_call_summaries): Delete.
(exploded_node::replay_call_summary): Delete.
(exploded_node::on_edge): Delete.
(exploded_node::on_longjmp): Eliminate ambiguous "setjmp_point"
and "next_point" in favor of "point_before_setjmp" and
"point_after_setjmp".
(exploded_graph::unwind_from_exception): Update for changes to
program_point.
(exploded_node::on_throw): Convert "after_throw_point" to a param.
(exploded_node::on_resx): Delete.
(exploded_node::detect_leaks): Update for renaming of
supernode::return_p to supernode::exit_p, and drop stmt param of
impl_region_model_context ctor.
(dynamic_call_info_t::update_model): Delete.
(dynamic_call_info_t::add_events_to_path): Delete.
(interprocedural_call::print): New.
(interprocedural_call::get_dot_attrs): New.
(interprocedural_call::update_state): New.
(interprocedural_call::update_model): New.
(interprocedural_call::add_events_to_path): New.
(interprocedural_return::print): New.
(interprocedural_return::get_dot_attrs): New.
(interprocedural_return::update_state): New.
(interprocedural_return::update_model): New.
(interprocedural_return::add_events_to_path): New.
(rewind_info_t::add_events_to_path): Add pending_diagnostic &
param.
(exploded_edge::dump_dot_label): Drop superedge kinds. Show
op vs no-op. Flush before printing any superedge label, and
escape that label.
(exploded_edge::maybe_get_stmt): New.
(exploded_edge::maybe_get_op): New.
(stats::stats): Update for change to m_num_nodes;
(stats::log): Likewise.
(stats::dump): Likewise.
(stats::get_total_enodes): Likewise.
(strongly_connected_components::strongly_connected_components):
Update for changes to supergraph.
(strongly_connected_components::dump): Show the stack. Update for
changes to supernode.
(strongly_connected_components::to_json): Update for changes to
supergraph.
(strongly_connected_components::strong_connect): Rename "index" to
"id". Drop superedge kinds.
(worklist::key_t::cmp): Compare BB indexes before snode ids.
Drop function_point.
(exploded_graph::exploded_graph): Update stats initialization.
(tainted_args_function_info::update_model): Reimplement.
(tainted_args_function_info::add_events_to_path): Add param.
(exploded_graph::get_or_create_node): Check for recursion limit
here, rather than in program_point::on_edge and
exploded_graph::maybe_create_dynamic_call. Only merge state
for points with state_merge_at_p. Update stats tracking for
changes to supergraph. Fix wording of log of state.
(exploded_graph::get_or_create_per_call_string_data): Update for
supergraph changes.
(tainted_args_call_info::update_model): Reimplement.
(tainted_args_call_info::add_events_to_path): Add param.
(exploded_graph::process_worklist): Drop assertions that nodes
have no successors, due to some cases during unwinding exceptions.
Update call to maybe_process_run_of_before_supernode_enodes to
call to maybe_process_run_of_enodes, and only at points for
which state_merge_at_p. Reimplement "too complex" check.
(exploded_graph::maybe_process_run_of_before_supernode_enodes):
Convert to...
(exploded_graph::maybe_process_run_of_enodes): ...this. Only
consider nodes with a single successor in the supergraph and for
which that superedge supports_bulk_merge_p. Port state updates to
using operation::update_state_for_bulk_merger.
(stmt_requires_new_enode_p): Delete.
(state_change_requires_new_enode_p): Delete.
(exploded_graph::maybe_create_dynamic_call): Delete.
(class impl_path_context): Reimplement in ops.cc.
(class jump_through_null): Move to region-model.cc.
(exploded_graph::process_node): Use location_t from supernode,
rather than trying to have a stmt associated with a supernode.
Drop switch on program_point kind, instead using the operation, if any,
from the superedge.
(exploded_graph::get_or_create_function_stats): Update computation
of num_supernodes for the function.
(exploded_graph::print_bar_charts): Update for supergraph changes.
(exploded_graph::dump_stats): Likewise.
(exploded_graph::dump_states_for_supernode): Delete.
(exploded_graph::to_json): Update comment.
(exploded_path::find_stmt_backwards): Update for supergraph
reimplementation.
(exploded_path::feasible_p): Drop "last_stmt".
(feasibility_state::maybe_update_for_edge): Move most of
implementation to ops and custom_edge_infos.
(feasibility_state::update_for_stmt): Delete.
(supernode_cluster::dump_dot): Update for supernode changes.
(supernode_cluster::cmp_ptr_ptr): Likewise.
(exploded_graph::dump_exploded_nodes): Update for
location-handling changes, and for changes to supergraph
representation.
(class viz_callgraph_node): Delete
(class viz_callgraph_edge): Delete.
(class viz_callgraph): Delete.
(class viz_callgraph_cluster): Delete.
(struct viz_callgraph_traits): Delete.
(dump_callgraph): Delete.
(exploded_graph_annotator::exploded_graph_annotator): Update for
supernode::m_index becoming supernode:m_id.
(exploded_graph_annotator::add_node_annotations): Reimplement to
show enodes within the node for the supernode.
(exploded_graph_annotator::print_enode_port): New.
(exploded_graph_annotator::print_enode): Add port.
(exploded_graph_annotator::print_saved_diagnostic): Drop stmt.
(exploded_graph_annotator::m_enodes_per_snodes): Convert to...
(exploded_graph_annotator::m_enodes_per_snode_id): ...this, using
std::vector.
(maybe_dump_supergraph): New.
(impl_run_checkers): Create region_model_manager before supergraph
and pass it to supergraph ctor. Dump the original form of the
supergraph, then call fixup_locations, simplify, and sort_nodes on
the supergraph, dumping it at each stage. Drop dump_callgraph.
Replace dump to "NAME.supergraph-eg.dot" with dump to
"NAME.supergraph.N.eg.dot".
* event-loc-info.h (event_loc_info::event_loc_info): Add ctors taking
const exploded_node * and const program_point &.
* exploded-graph.h: Add include of "analyzer/region-model.h".
(impl_region_model_context::impl_region_model_context): Add default
for "stmt" param. Drop "stmt_finder" param.
(impl_region_model_context::warn): Convert to...
(impl_region_model_context::warn_at): ...this.
(impl_region_model_context::get_pending_location_for_diag): New.
(impl_region_model_context::m_stmt_finder): Drop.
(struct exploded_node::on_stmt_flags): Drop.
(exploded_node::on_stmt): Drop.
(exploded_node::on_stmt_pre): Drop.
(exploded_node::on_stmt_post): Drop.
(exploded_node::replay_call_summaries): Drop.
(exploded_node::replay_call_summary): Drop.
(exploded_node::on_edge): Drop.
(exploded_node::on_throw): Add "after_throw_point" param.
(exploded_node::on_resx): Drop.
(exploded_node::get_location): New.
(exploded_node::get_stmt): Drop.
(exploded_node::get_processed_stmt): Drop.
(exploded_node::maybe_get_stmt): New decl.
(exploded_node::maybe_get_op): New decl.
(class dynamic_call_info_t): Delete.
(class interprocedural_call): New.
(class interprocedural_return): New.
(rewind_info_t::add_events_to_path): Add pending_diagnostic &
param.
(rewind_info_t::get_setjmp_point): Replace with...
(rewind_info_t::get_point_before_setjmp): ...this...
(rewind_info_t::get_point_after_setjmp): ...and this.
(stats::m_num_nodes): Convert from an array to a plain int.
(class strongly_connected_components): Convert from index to id
throughout.
(exploded_graph::maybe_process_run_of_before_supernode_enodes):
Replace with...
(exploded_graph::maybe_process_run_of_enodes): ...this.
(exploded_graph::maybe_create_dynamic_call): Delete.
(exploded_graph::save_diagnostic): Drop stmt_finder param.
(exploded_graph::dump_states_for_supernode): Drop.
(exploded_graph::m_PK_AFTER_SUPERNODE_per_snode): Drop.
(class feasibility_problem): Drop "m_last_stmt".
(feasibility_state::update_for_stmt): Drop.
(feasibility_state::get_model): Add non-const accessor.
(feasibility_state::get_snodes_visited): New accessor.
(class stmt_finder): Drop.
* feasible-graph.cc (feasible_node::dump_dot): Drop call to
dump_processed_stmts.
(feasible_node::get_state_at_stmt): Drop.
* impl-sm-context.h: New file, adapted from material in engine.cc.
* infinite-loop.cc
(perpetual_start_cfg_edge_event::perpetual_start_cfg_edge_event):
Add "op" param.
(perpetual_start_cfg_edge_event::print_desc): Use m_op to describe
condition.
(looping_back_event::looping_back_event): Add "op" param.
(infinite_loop_diagnostic::maybe_add_custom_events_for_superedge):
Convert to...
(infinite_loop_diagnostic::maybe_add_custom_events_for_eedge):
...this.
(infinite_loop_diagnostic::add_final_event): Port from
cfg_superedge to get_any_cfg_edge and operations. Update for
location-handling changes.
(get_in_edge_back_edge): Port from cfg_superedge to
get_any_cfg_edge.
(starts_infinite_loop_p): Update for location-handling changes.
(exploded_graph::detect_infinite_loops): Remove redundant params.
* infinite-recursion.cc
(infinite_recursion_diagnostic::add_final_event): Update for
location-handling changes.
(infinite_recursion_diagnostic::check_valid_fpath_p): Drop gimple
param.
(infinite_recursion_diagnostic::fedge_uses_conjured_svalue_p):
Port from cfg_superedge to operations.
(is_entrypoint_p): Update for supergraph changes.
(exploded_graph::detect_infinite_recursion): Update for
location-handling changes.
* kf-lang-cp.cc (kf_operator_new::impl_call_pre): Split out
code to handle placement-new into...
(kf_operator_new::check_any_preconditions): ...this...
(kf_operator_new::get_sized_region_for_placement_new): ...and
this.
* ops.cc: New file, albeit with material adatpted from old
implementation.
* ops.h: Likewise.
* pending-diagnostic.cc (pending_diagnostic::add_call_event): Add
gcall param. Update for changes to location-handling.
* pending-diagnostic.h
(pending_diagnostic::maybe_add_custom_events_for_superedge):
Convert to...
(pending_diagnostic::maybe_add_custom_events_for_eedge): ...this.
(pending_diagnostic::add_call_event): Add "call_stmt" param.
(pending_diagnostic::check_valid_fpath_p): Drop stmt param.
* program-point.cc (point_kind_to_string): Delete.
(function_point::function_point): Delete.
(function_point::print): Delete.
(function_point::hash): Delete.
(function_point::get_function): Delete.
(function_point::get_stmt): Delete.
(function_point::get_location): Delete.
(function_point::final_stmt_p): Delete.
(function_point::from_function_entry): Delete.
(function_point::before_supernode): Delete.
(function_point::print_source_line): Convert to...
(program_point::print_source_line): ...this.
(program_point::print): Reimplement.
(program_point::to_json): Likewise.
(program_point::push_to_call_stack): Delete.
(program_point::hash): Reimplement.
(program_point::get_function_at_depth): Likewise.
(program_point::on_edge): Delete.
(function_point::cmp_within_supernode_1): Delete.
(function_point::cmp_within_supernode): Delete.
(function_point::cmp): Delete.
(function_point::cmp_ptr): Delete.
(function_point::next_stmt): Delete.
(function_point::get_next): Delete.
(program_point::origin): Update.
(program_point::from_function_entry): Update.
(program_point::get_next): Delete.
(selftest::test_function_point_equality): Delete.
(selftest::test_function_point_ordering): Delete.
(selftest::test_program_point_equality): Update for changes to
program_point.
(selftest::analyzer_program_point_cc_tests): Don't call deleted
function_point tests.
* program-point.h: Include "analyzer/supergraph.h".
(class exploded_graph): Drop forward decl.
(enum point_kind): Drop.
(point_kind_to_string): Drop decl.
(class function_point): Delete.
(program_point::program_point): Take a const supernode *
rather than a const function_point &.
(program_point::print_source_line): New decl.
(program_point::operator==): Update.
(program_point::get_function_point): Drop.
(program_point::get_supernode): Reimplement.
(program_point::get_function): Reimplement.
(program_point::get_fndecl): Reimplement.
(program_point::get_stmt): Drop.
(program_point::get_location): Reimplement.
(program_point::get_kind): Drop.
(program_point::get_from_edge): Drop.
(program_point::get_stmt_idx): Drop.
(program_point::get_stack_depth): Update.
(program_point::state_merge_at_p): New.
(program_point::before_supernode): Drop.
(program_point::before_stmt): Drop.
(program_point::after_supernode): Drop.
(program_point::empty): Drop.
(program_point::deleted): Drop.
(program_point::on_edge): Drop.
(program_point::push_to_call_stack): Drop.
(program_point::next_stmt): Drop.
(program_point::get_next): Drop.
(program_point::m_function_point): Replace with...
(program_point::m_snode): ...this.
* program-state.cc (program_state::on_edge): Delete.
(program_state::push_call): Delete.
(program_state::returning_call): Delete.
(program_state::prune_for_point): Port from function_point to
supernode. Drop stmt param to impl_region_model_context ctor.
(selftest::test_sm_state_map): Update for engine borrowing rather
owning the region_model_manager.
(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 (program_state::push_call): Delete decl.
(program_state::returning_call): Delete decl.
(program_state::on_edge): Delete decl.
* region-model-manager.cc (region_model_manager::maybe_fold_unaryop):
Only fold constants if we have a type.
(region_model_manager::get_or_create_widening_svalue): Port from
function_point to supernode.
* region-model-manager.h
(region_model_manager::get_or_create_widening_svalue): Likewise.
* region-model.cc
(poisoned_value_diagnostic::check_valid_fpath_p): Drop code for
handling function_points within an snode.
(exception_thrown_from_unrecognized_call::add_events_to_path): Add
pending_diagnostic param.
(class jump_through_null): Move here from engine.cc.
(region_model::on_call_pre): Check for jump through null here,
rather than in exploded_graph::process_node.
(region_model::on_setjmp): Add superedge param and pass it to
setjmp_record ctor.
(region_model::handle_phi): Delete, in favor of
phis_for_edge_op::update_state in ops.cc.
(region_model::update_for_phis): Likewise.
(region_model::maybe_update_for_edge): Delete.
(region_model::update_for_call_superedge): Delete.
(region_model::update_for_return_superedge): Delete.
(region_model::apply_constraints_for_gcond): Reimplement in ops.cc as
gcond_edge_op::apply_constraints.
(has_nondefault_case_for_value_p): Move to ops.cc.
(has_nondefault_cases_for_all_enum_values_p): Move to ops.cc
(region_model::apply_constraints_for_gswitch): Reimplement in
ops.cc as switch_case_op::apply_constraints.
(class rejected_eh_dispatch): Move to ops.cc.
(exception_matches_type_p): Move to ops.cc.
(matches_any_exception_type_p): Move to ops.cc.
(region_model::apply_constraints_for_eh_dispatch): Reimplement in
ops.cc as eh_dispatch_edge_op::apply_constraints.
(region_model::apply_constraints_for_eh_dispatch_try): Reimplement
in ops.cc as eh_dispatch_try_edge_op::apply_eh_constraints.
(region_model::apply_constraints_for_eh_dispatch_allowed):
Reimplement in ops.cc as
eh_dispatch_allowed_edge_op::apply_eh_constraints.
(region_model::apply_constraints_for_ggoto): Reimplement in ops.cc
as ggoto_edge_op::apply_constraints.
(caller_context::warn): Replace with...
(caller_context::get_pending_location_for_diag): ...this.
(region_model::get_or_create_region_for_heap_alloc): Fix
indentation.
(region_model_context::warn): New, replacing vfunc with
shared code that calls get_pending_location_for_diag and warn_at
vfuncs.
(engine::engine): Borrow m_mgr rather than own it.
(seldtest::test_state_merging): Update test for ptrs to different
base regions becoming unmergeable.
(selftest::test_widening_constraints): Port from function_point to
supernode.
* region-model.h: Include "analyzer/diagnostic-manager.h".
(region_model::on_setjmp): Add superedge param.
(region_model::void update_for_phis): Drop decl.
(region_model::handle_phi): Drop decl.
(region_model::maybe_update_for_edge): Drop decl.
(region_model::apply_constraints_for_eh_dispatch_try): Drop decl.
(region_model::apply_constraints_for_eh_dispatch_allowed): Drop
decl.
(region_model::update_for_call_superedge): Drop decl.
(region_model::update_for_return_superedge): Drop decl.
(region_model::apply_constraints_for_gcond): Drop decl.
(region_model::apply_constraints_for_gswitch): Drop decl.
(region_model::apply_constraints_for_ggoto): Drop decl.
(region_model::apply_constraints_for_eh_dispatch): Drop decl.
(region_model_context::warn): Convert from vfunc to func.
(region_model_context::get_pending_location_for_diag): New vfunc.
(region_model_context::warn_at): New vfunc.
(class noop_region_model_context): Update for changes to
region_model_context.
(class region_model_context_decorator): Likewise.
(class annotating_context): Likewise.
(struct model_merger): Port from function_point to supernode.
(class engine): Borrow m_mgr rather than own it.
(class test_region_model_context): Update for changes to
region_model_context.
* region.cc (frame_region::get_region_for_local): Update for
change to supergraph.
* sm-fd.cc: Drop redundant params throughout. Pass stmt
rather than node to the various on_ calls.
* sm-file.cc: Drop redundant params throughout.
(register_known_file_functions): Register "*_unlocked" versions of
functions that I'd missed.
* sm-malloc.cc: Drop redundant params throughout.
(deref_before_check::loop_header_p): Reimplement cfg_superedge
check.
(malloc_state_machine::on_stmt): Move attribute-handling to...
(malloc_state_machine::check_call_preconditions): ...this new
function.
(maybe_complain_about_deref_before_check): Use
sm_ctxt.get_emission_location when checking for inlining.
* sm-pattern-test.cc: Drop redundant params throughout.
* sm-sensitive.cc: Likewise.
* sm-signal.cc: Likewise.
* sm-taint.cc: Likewise.
* sm.cc: Fix unused param warnings.
* sm.h: Include "analyzer/analyzer-logging.h". Drop redundant
params throughout.
(state_machine::check_call_preconditions): New vfunc.
(sm_context::get_state): Drop "stmt" args.
(sm_context::set_next_state): Likewise.
(sm_context::on_transition): Drop "stmt" and "node" args.
(sm_context::warn): Likewise.
(sm_context::get_emission_location): New vfunc.
* state-purge.cc: Define INCLUDE_SET.
(class gimple_op_visitor): Replace function_point and function
with superedge.
(state_purge_map::state_purge_map): Iterate through ops on edges,
rather than on stmts in supernodes.
(state_purge_map::on_duplicated_node): New.
(state_purge_map::get_or_create_data_for_decl): Use supernode
rather than function_point.
(state_purge_per_ssa_name::state_purge_per_ssa_name): Likewise.
(state_purge_per_ssa_name::needed_at_point_p): Replace with...
(state_purge_per_ssa_name::needed_at_supernode_p): ...this.
(state_purge_per_ssa_name::before_use_stmt): Delete.
(state_purge_per_ssa_name::add_to_worklist): Use supernode rather
than function_point.
(name_used_by_phis_p): Delete.
(state_purge_per_ssa_name::process_point): Replace with...
(state_purge_per_ssa_name::process_supernode): ...this.
(state_purge_per_ssa_name::on_duplicated_node): New.
(state_purge_per_decl::state_purge_per_decl): Use supernode rather
than function_point.
(state_purge_per_decl::add_needed_at): Likewise.
(state_purge_per_decl::add_pointed_to_at): Likewise.
(state_purge_per_decl::process_worklists): Likewise.
(state_purge_per_decl::add_to_worklist): Likewise.
(state_purge_per_decl::process_point_backwards): Replace with...
(state_purge_per_decl::process_supernode_backwards): ...this.
(state_purge_per_decl::process_point_forwards): Replace with...
(state_purge_per_decl::process_supernode_forwards): ...this.
(state_purge_per_decl::needed_at_point_p): Replace with...
(state_purge_per_decl::needed_at_supernode_p): ...this.
(state_purge_per_decl::on_duplicated_node): New.
(print_vec_of_names): Drop "within_table" param.
(state_purge_annotator::add_stmt_annotations): Drop.
(state_purge_annotator::add_node_annotations): Reimplement.
* state-purge.h: Convert throughout from function_point to
supernode.
(state_purge_map::on_duplicated_node): New decl.
(state_purge_per_ssa_name::on_duplicated_node): Likewise.
(state_purge_per_decl::on_duplicated_node): Likewise.
* store.cc (needs_loop_replay_fixup_p): New.
(store::loop_replay_fixup): Use it rather than checking for
SK_WIDENING.
* supergraph-fixup-locations.cc: New file.
* supergraph-manipulation.h: New file.
* supergraph-simplify.cc: New file.
* supergraph-sorting.cc: New file.
* supergraph.cc: Define INCLUDE_DEQUE. Drop include of
"tree-dfa.h". Include "diagnostics/file-cache.h"
and "analyzer/exploded-graph.h".
(supergraph_call_edge): Delete.
(control_flow_stmt_p): New.
(supergraph::supergraph): Add "mgr" param. Initialize
m_next_snode_id. Reimplement.
(supergraph::populate_for_basic_block): New.
(supergraph::dump_dot_to_pp): Add auto_cfun sentinel.
Split up nodes using loop information from the original CFG,
then by basic block. Call the node_annotator's
add_extra_objects vfunc.
(supergraph::dump_dot_to_gv_for_loop): New.
(supergraph::dump_dot_to_gv_for_bb): New, based on code in
dump_dot_to_pp.
(supergraph::add_node): Drop "returning_call" and "phi_nodes"
params. Add logger param and logging. Use m_next_snode_id to
allow for node deletion.
(supergraph::add_cfg_edge): Delete.
(supergraph::add_call_superedge): Delete.
(supergraph::add_return_superedge): Delete.
(supergraph::delete_nodes): New.
(supergraph::add_sedges_for_cfg_edge): New.
(supernode::dump_dot): Drop output cluster, moving
add_node_annotations to within the dot node. Show any SCC id.
Show m_preserve_p and m_state_merger_node. Update for renaming of
supernode::return_p to supernode::exit_p. Highlight nodes without
source location information. Show m_loc and m_stmt_loc. Show
source lines, with color for highlight.
(supernode::dump_dot_id): Update.
(supernode::to_json): Update.
(supernode::get_start_location): Delete.
(supernode::get_end_location): Delete.
(supernode::get_stmt_index): Delete.
(supernode::get_label): Delete.
(edge_kind_to_string): Delete.
(superedge::dump): Update for supernode::m_index becoming m_id.
(superedge::dump_dot): Drop ltail/lhead attrs. Flush after
dumping the label.
(superedge::to_json): Reimplement.
(superedge::get_any_cfg_edge): Delete.
(superedge::get_any_callgraph_edge): Delete.
(superedge::preserve_p): New.
(superedge::supports_bulk_merge_p): New.
(cfg_superedge::dump_label_to_pp): Delete.
(superedge::dump_label_to_pp): New.
(cfg_superedge::get_phi_arg_idx): Delete.
(cfg_superedge::get_phi_arg): Delete.
(switch_cfg_superedge::switch_cfg_superedge): Delete.
(switch_cfg_superedge::dump_label_to_pp): Delete.
(switch_cfg_superedge::implicitly_created_default_p): Delete.
(get_catch): Move to ops.cc.
(eh_dispatch_cfg_superedge::make): Delete in favor of
eh_dispatch_edge_op::make.
(eh_dispatch_cfg_superedge::eh_dispatch_cfg_superedge): Delete.
(eh_dispatch_cfg_superedge::get_eh_status): Delete.
(eh_dispatch_try_cfg_superedge::dump_label_to_pp): Delete.
(eh_dispatch_try_cfg_superedge::apply_constraints): Delete.
(eh_dispatch_allowed_cfg_superedge::eh_dispatch_allowed_cfg_superedge):
Delete.
(eh_dispatch_allowed_cfg_superedge::dump_label_to_pp): Delete.
(eh_dispatch_allowed_cfg_superedge::apply_constraints): Delete.
(callgraph_superedge::dump_label_to_pp): Delete.
(callgraph_superedge::get_callee_function): Delete.
(callgraph_superedge::get_caller_function): Delete
(callgraph_superedge::get_callee_decl): Delete
(callgraph_superedge::get_call_stmt): Delete
(callgraph_superedge::get_caller_decl): Delete
(callgraph_superedge::get_arg_for_parm): Delete in favor of
call_and_return_op::get_arg_for_parm in ops.cc.
(callgraph_superedge::get_parm_for_arg): Delete in favor of
call_and_return_op::get_parm_for_arg in ops.cc.
(callgraph_superedge::map_expr_from_caller_to_callee): Delete in
favor of call_and_return_op::map_expr_from_caller_to_callee in
ops.cc.
(callgraph_superedge::map_expr_from_callee_to_caller): Delete in
favor of call_and_return_op::map_expr_from_callee_to_caller in
ops.cc.
* supergraph.h: Include "cfgloop.h" and "analyzer/ops.h".
(enum edge_kind): Delete.
(struct supergraph_traits::dump_args_t): Add m_eg.
(class supergraph): Rewrite leading comment.
(supergraph::supergraph): Add "mgr" param.
(supergraph::get_node_for_function_entry): Reimplement.
(supergraph::get_node_for_function_exit): Reimplement.
(supergraph::get_node_for_block): Convert to...
(supergraph::get_initial_node_for_block): ...this.
(supergraph::get_caller_next_node): Delete.
(supergraph::get_edge_for_call): Delete.
(supergraph::get_edge_for_return): Delete.
(supergraph::get_intraprocedural_edge_for_call): Delete.
(supergraph::get_edge_for_cfg_edge): Delete.
(supergraph::get_supernode_for_stmt): Delete.
(supergraph::get_final_node_for_block): New.
(supergraph::get_supernode_for_stmt): New.
(supergraph::get_superedge_for_phis): New.
(supergraph::get_node_by_index): Delete.
(supergraph::add_node): Drop "returning_call" and "phi_nodes"
params. Add logger param.
(supergraph::add_cfg_edge): Delete.
(supergraph::add_call_superedge): Delete.
(supergraph::add_return_superedge): Delete.
(supergraph::log_stats): New decl.
(supergraph::delete_nodes): New decl.
(supergraph::fixup_locations): New decl.
(supergraph::simplify): New decl.
(supergraph::sort_nodes): New decl.
(supergraph::populate_for_basic_block): New decl.
(supergraph::add_sedges_for_cfg_edge): New decl.
(supergraph::dump_dot_to_gv_for_loop): New decl.
(supergraph::dump_dot_to_gv_for_bb): New decl.
(supergraph::reorder_nodes_and_ids): New decl.
(supergraph::bb_to_node_t): Make private.
(supergraph::m_bb_to_initial_node): Make private.
(supergraph::m_bb_to_final_node): Make private.
(supergraph::cgraph_edge_to_node_t): Delete typedef.
(supergraph::m_cgraph_edge_to_caller_prev_node): Delete.
(supergraph::m_cgraph_edge_to_caller_next_node): Delete.
(supergraph::cfg_edge_to_cfg_superedge_t): Delete typedef.
(supergraph::m_cfg_edge_to_cfg_superedge): Delete.
(supergraph::cgraph_edge_to_call_superedge_t): Delete typedef.
(supergraph::m_cgraph_edge_to_call_superedge): Delete
(supergraph::cgraph_edge_to_return_superedge_t): Delete typedef.
(supergraph::m_cgraph_edge_to_return_superedge): Delete.
(supergraph::cgraph_edge_to_intraproc_superedge_t): Delete
typedef.
(supergraph::m_cgraph_edge_to_intraproc_superedge): Delete.
(supergraph::stmt_to_node_t): Delete typedef.
(supergraph::m_stmt_to_node_t): Replace with...
(supergraph::m_node_for_stmt): ...this.
(supergraph::m_edges_for_phis): New field.
(supergraph::m_next_snode_id): New field.
(supergraph::m_snode_by_id): New field.
(supernode::supernode): Drop "returning_call" and "phi_nodes"
params. Convert "index" to "id". Update for changes to fields.
(supernode::return_p): Rename for clarity to...
(supernode::exit_p): ...this.
(supernode::get_start_location): Delete.
(supernode::get_end_location): Delete.
(supernode::start_phis): Delete.
(supernode::get_returning_call): Delete.
(supernode::print): New.
(supernode::get_last_stmt): Delete.
(supernode::get_final_call): Delete.
(supernode::get_stmt_index): Delete.
(supernode::get_location): New.
(supernode::get_label): Convert to trivial accessor.
(supernode::preserve_p): New.
(supernode::m_returning_call): Drop field.
(supernode::m_phi_nodes): Drop field.
(supernode::m_stmts): Drop field.
(supernode::m_index): Replace with...
(supernode::m_id): ...this.
(supernode::m_loc): New field.
(supernode::m_stmt_loc): New field.
(supernode::m_original_id): New field.
(supernode::m_label): New field.
(supernode::m_preserve_p): New field.
(supernode::m_state_merger_node): New field.
(class superedge): Update leading comment.
(superedge::superedge): Make public rather than protected. Drop
"kind" param. Add "op" and "cfg_edge" params. Assert that edge
is intraprocedural.
(superedge::m_kind): Drop field.
(superedge::m_op): New field.
(superedge::m_cfg_edge): New field.
(superedge::dump_label_to_pp): Make non-virtual.
(superedge::get_op): New.
(superedge::set_op): New.
(superedge::get_kind): Drop.
(superedge::get_dest_snode): New accessor.
(superedge::dyn_cast_cfg_superedge): Delete.
(superedge::dyn_cast_switch_cfg_superedge): Delete
(superedge::dyn_cast_eh_dispatch_cfg_superedge): Delete
(superedge::dyn_cast_eh_dispatch_try_cfg_superedge): Delete
(superedge::dyn_cast_eh_dispatch_allowed_cfg_superedge): Delete
(superedge::dyn_cast_callgraph_superedge): Delete
(superedge::dyn_cast_callgraph_superedge): Delete
(superedge::dyn_cast_call_superedge): Delete
(superedge::dyn_cast_call_superedge): Delete
(superedge::dyn_cast_return_superedge): Delete
(superedge::dyn_cast_return_superedge): Delete
(superedge::get_any_cfg_edge): Convert to trivial accessor.
(superedge::get_any_callgraph_edge): Drop.
(superedge::preserve_p): New.
(superedge::supports_bulk_merge_p): New.
(class callgraph_superedge): Drop.
(is_a_helper <const callgraph_superedge *>::test): Drop.
(class call_superedge): Drop.
(is_a_helper <const call_superedge *>::test): Drop.
(class return_superedge): Drop.
(is_a_helper <const return_superedge *>::test): Drop.
(class cfg_superedge): Drop.
(class switch_cfg_superedge): Drop.
(is_a_helper <const switch_cfg_superedge *>::test): Drop.
(class eh_dispatch_cfg_superedge): Drop.
(is_a_helper <const eh_dispatch_cfg_superedge *>::test): Drop.
(class eh_dispatch_try_cfg_superedge): Drop.
(is_a_helper <const eh_dispatch_try_cfg_superedge *>::test): Drop.
(class eh_dispatch_allowed_cfg_superedge): Drop.
(is_a_helper <const eh_dispatch_allowed_cfg_superedge *>::test):
Drop.
(dot_annotator::~dot_annotator): Use "= default;".
(dot_annotator::add_node_annotations): Drop return value and
"within_table" param.
(dot_annotator::add_stmt_annotations): Drop.
(dot_annotator::add_after_node_annotations): Drop.
(dot_annotator::add_extra_objects): New.
(supergraph_call_edge): Delete decl.
(get_ultimate_function_for_cgraph_edge): Delete decl.
* svalue.cc (svalue::can_merge_p): Reject attempts to merge
pointers that point to different base regions, except for the case
where both are string literals. Update for point change in
widening_svalue.
(svalue::cmp_ptr): Update for point change to widening_svalue.
(widening_svalue::dump_to_pp): Likewise.
(widening_svalue::print_dump_widget_label): Likewise.
* svalue.h (struct setjmp_record): Add m_sedge.
(class widening_svalue): Replace function_point m_point with
const supernode *m_snode throughout.
* varargs.cc (va_list_state_machine::on_stmt): Drop redundant
param.
(va_list_state_machine::on_va_start): Likewise. Update for change
to get_state.
(va_list_state_machine::check_for_ended_va_list): Likewise.
(va_list_state_machine::on_va_copy): Likewise.
(va_list_state_machine::on_va_arg): Likewise.
(va_list_state_machine::on_va_end): Likewise.
(va_arg_diagnostic::add_call_event): Update for changes to
location-tracking.
2025-12-07 David Malcolm <dmalcolm@redhat.com> 2025-12-07 David Malcolm <dmalcolm@redhat.com>
* kf.cc (register_known_functions): Remove duplicate calls to * kf.cc (register_known_functions): Remove duplicate calls to

View File

@ -1,3 +1,11 @@
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* c-omp.cc (c_omp_split_clauses): Hande uses_allocators.
* c-pragma.h (enum pragma_omp_clause): Add
PRAGMA_OMP_CLAUSE_USES_ALLOCATORS.
2025-12-11 supers1ngular <supers1ngular@baylibre.com> 2025-12-11 supers1ngular <supers1ngular@baylibre.com>
* c-cppbuiltin.cc (c_cpp_builtins): Bump _OPENMP version. * c-cppbuiltin.cc (c_cpp_builtins): Bump _OPENMP version.

View File

@ -1,3 +1,12 @@
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* c-parser.cc (c_parser_omp_clause_uses_allocators): New function.
(c_parser_omp_clause_name, c_parser_omp_all_clauses,
OMP_TARGET_CLAUSE_MASK): Handle uses_allocators.
* c-typeck.cc (c_finish_omp_clauses): Likewise.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
PR testsuite/123098 PR testsuite/123098

View File

@ -1,3 +1,21 @@
2025-12-12 Nathaniel Shead <nathanieloshead@gmail.com>
* method.cc (constructible_expr): Emit diagnostics for abstract
types.
* typeck2.cc (abstract_virtuals_error): Use more accurate
wording for default case, and remove extranneous whitespace
in favour of a nesting level.
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* parser.cc (cp_parser_omp_clause_uses_allocators): New function.
(cp_parser_omp_clause_name, cp_parser_omp_all_clauses,
OMP_TARGET_CLAUSE_MASK): Handle uses_allocators.
* semantics.cc (finish_omp_clauses): Likewise.
* pt.cc (tsubst_omp_clauses): Likewise.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
PR testsuite/123098 PR testsuite/123098

View File

@ -1,3 +1,22 @@
2025-12-12 Tobias Burnus <tburnus@baylibre.com>
* openmp.cc (gfc_match_omp_clause_uses_allocators): Mention
new syntax in deprecation warning.
2025-12-12 Tobias Burnus <tburnus@baylibre.com>
* intrinsic.texi (OpenMP Modules OMP_LIB and OMP_LIB_KINDS): Link
also to OpenMP 6.0, move 'partially supported' to the end of the
list of OpenMP versions. Mark 'omp_lock_hint_...' and
'omp_atv_sequential' constants as deprecated.
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* openmp.cc (resolve_omp_clauses): Handle omp_null_allocator.
* trans-openmp.cc (gfc_trans_omp_clauses): Mention it in a comment.
2025-12-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2025-12-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/107406 PR fortran/107406

View File

@ -1,3 +1,7 @@
2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz>
* lang.opt.urls: Regenerate.
2025-11-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com> 2025-11-30 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
* lang.opt.urls: Regenerate. * lang.opt.urls: Regenerate.

View File

@ -1,3 +1,7 @@
2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz>
* lang.opt.urls: Regenerate.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
* gm2-compiler/M2Check.mod (buildError4): Fix comment typo, * gm2-compiler/M2Check.mod (buildError4): Fix comment typo,

View File

@ -1,3 +1,7 @@
2025-12-12 Pietro Monteiro <pietro@sociotechnical.xyz>
* lang.opt.urls: Regenerate.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
* backend/rust-tree.cc (fold_builtin_source_location): Fix string literal * backend/rust-tree.cc (fold_builtin_source_location): Fix string literal

View File

@ -1,3 +1,717 @@
2025-12-12 Nathaniel Shead <nathanieloshead@gmail.com>
* g++.dg/ext/is_constructible9.C: Add to testcase.
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* c-c++-common/gomp/uses_allocators-1.c: New test.
* c-c++-common/gomp/uses_allocators-2.c: New test.
* c-c++-common/gomp/uses_allocators-4.c: New test.
* c-c++-common/gomp/uses_allocators-7.c: New test.
* g++.dg/gomp/deprecate-2.C: New test.
* g++.dg/gomp/uses_allocators-1.C: New test.
* gcc.dg/gomp/deprecate-2.c: New test.
2025-12-12 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
* g++.target/s390/builtin-array-arg-1.C: New test.
* gcc.target/s390/builtin-array-arg-1.c: New test.
2025-12-12 David Malcolm <dmalcolm@redhat.com>
PR analyzer/122003
* c-c++-common/analyzer/allocation-size-multiline-1.c: Update for split
of region creation events.
* c-c++-common/analyzer/bzip2-arg-parse-1.c: Drop test for enode
merging. Add -Wno-analyzer-too-complex.
* c-c++-common/analyzer/coreutils-cksum-pr108664.c: Add
-Wno-analyzer-symbol-too-complex. Add dg-bogus for false +ve seen
during patch development.
* c-c++-common/analyzer/coreutils-group_number.c: New test.
* c-c++-common/analyzer/data-model-20.c: Mark warnings as xfail.
* c-c++-common/analyzer/deref-before-check-qemu-qtest_rsp_args.c:
Add xfails.
* c-c++-common/analyzer/dot-output.c: Update for changes to dumps.
* c-c++-common/analyzer/fd-symbolic-socket.c: Update for
improvements to locations of leaks.
* c-c++-common/analyzer/fibonacci.c: Update regex.
* c-c++-common/analyzer/flex-with-call-summaries.c: Add xfail.
* c-c++-common/analyzer/flex-without-call-summaries.c: Add
-Wno-analyzer-symbol-too-complex. Add xfail.
* c-c++-common/analyzer/infinite-recursion-5.c: Disable cases that
now explode the analysis.
* c-c++-common/analyzer/infinite-recursion-pr108524-2.c: Remove
xfail.
* c-c++-common/analyzer/invalid-shift-1.c: Remove xfails with c++26.
* c-c++-common/analyzer/ipa-callbacks-1.c: New test.
* c-c++-common/analyzer/loop-4.c: Expect incorrect UNKNOWN within
loop. Update expected number of enodes.
* c-c++-common/analyzer/loop-n-down-to-1-by-1.c: Expect incorrect
UNKNOWN within loop.
* c-c++-common/analyzer/loop.c: Drop xfail.
* c-c++-common/analyzer/out-of-bounds-coreutils.c: Expect infinite
loop warning.
* c-c++-common/analyzer/paths-4.c: Update expected number of
enodes.
* c-c++-common/analyzer/pr94362-1.c: Drop -Wno-analyzer-too-complex.
* c-c++-common/analyzer/pr94851-2.c: Add xfail.
* c-c++-common/analyzer/pr96650-1-notrans.c: Add
-Wno-analyzer-too-complex.
* c-c++-common/analyzer/pr98628.c: Likewise.
* c-c++-common/analyzer/pr99774-1.c: Likewise.
* c-c++-common/analyzer/pragma-2.c: Expect double-free warning.
* c-c++-common/analyzer/realloc-1.c: Move expected location of
leak from trailing "}" to realloc call.
* c-c++-common/analyzer/sock-1.c: Add -fno-exceptions.
* c-c++-common/analyzer/sprintf-2.c: Add __attribute__ nonnull to
decl.
* c-c++-common/analyzer/sprintf-concat.c: Move expected location
of leak of p from sprintf to trailing "}".
* c-c++-common/analyzer/stdarg-sentinel-1.c: Drop
-Wno-analyzer-too-complex.
* c-c++-common/analyzer/strncpy-1.c: Add __attribute__ nonnull to
decl.
* c-c++-common/analyzer/strstr-1.c: Likewise.
* g++.dg/analyzer/analyzer.exp: Drop -fanalyzer-call-summaries.
* g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C:
Update expected messages.
* g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C:
Likewise.
* g++.dg/analyzer/fanalyzer-show-events-in-system-headers.C: Likewise.
* g++.dg/analyzer/pr94028.C: Move expected location of leak
warning to where return value of f is discarded within m.
* g++.dg/analyzer/pr96641.C: Expect infinite recursion warning.
* gcc.dg/analyzer/CWE-131-examples.c: Add
-Wno-analyzer-too-complex.
* gcc.dg/analyzer/abs-1.c (test_2): Fix return type.
* gcc.dg/analyzer/analyzer-decls.h: Reformat. Add
__attribute__ ((nothrow)) to all functions.
* gcc.dg/analyzer/analyzer.exp: Drop -fanalyzer-call-summaries.
* gcc.dg/analyzer/boxed-malloc-1.c: Fix return types.
* gcc.dg/analyzer/call-summaries-2.c: Likewise.
* gcc.dg/analyzer/combined-conditionals-1.c: Likewise.
* gcc.dg/analyzer/compound-assignment-2.c: Expect warning about
missing return.
* gcc.dg/analyzer/compound-assignment-3.c: Likewise.
* gcc.dg/analyzer/conditionals-3.c: Fix return type.
* gcc.dg/analyzer/data-model-1.c: Likewise.
* gcc.dg/analyzer/data-model-15.c: Likewise.
* gcc.dg/analyzer/data-model-17.c: Likewise.
* gcc.dg/analyzer/data-model-20a.c: Remove xfail from bogus leak.
* gcc.dg/analyzer/data-model-7.c: Fix return type.
* gcc.dg/analyzer/doom-d_main-IdentifyVersion.c: Add xfail to some
of the leak msgs.
* gcc.dg/analyzer/doom-s_sound-pr108867.c: Add xfail.
* gcc.dg/analyzer/edges-1.c: Update for improvements to location
of leak.
* gcc.dg/analyzer/error-1.c: Fix return type.
* gcc.dg/analyzer/explode-1.c: Drop xfail. Expect uninit and
double-free warnings.
* gcc.dg/analyzer/explode-2.c: Add xfail.
* gcc.dg/analyzer/explode-3.c: Drop xfail. Expect uninit and
double-free warnings.
* gcc.dg/analyzer/fd-datagram-socket.c: Move expected location of
leaks to closing "}"s.
* gcc.dg/analyzer/fd-glibc-byte-stream-connection-server.c: Add
false +ve leak message, due to not considering that program is
about to exit.
* gcc.dg/analyzer/fd-stream-socket.c: Move expected location of
leaks to closing "}"s.
* gcc.dg/analyzer/malloc-1.c: Fix return types.
* gcc.dg/analyzer/malloc-many-paths-2.c: Likewise.
* gcc.dg/analyzer/malloc-paths-10.c: Likewise.
* gcc.dg/analyzer/malloc-vs-local-4.c: Likewise.
* gcc.dg/analyzer/memset-CVE-2017-18549-1.c: Likewise.
* gcc.dg/analyzer/null-deref-pr102671-1.c: Enable
-fanalyzer-call-summaries.
* gcc.dg/analyzer/null-deref-pr102671-2.c: Remove xfail.
* gcc.dg/analyzer/pr101143.c: Fix return type.
* gcc.dg/analyzer/pr101837.c: Fix return type. Add warning about
missing return.
* gcc.dg/analyzer/pr101983-not-main.c: Fix return type.
* gcc.dg/analyzer/pr103892.c: Enable -fanalyzer-call-summaries.
* gcc.dg/analyzer/pr104224.c: Add xfails.
* gcc.dg/analyzer/pr104434-nonconst.c: Likewise.
* gcc.dg/analyzer/pr93032-mztools-signed-char.c: Increase
exploration limits by a factor of 5.
* gcc.dg/analyzer/pr93032-mztools-unsigned-char.c: Likewise.
* gcc.dg/analyzer/pr93355-localealias-feasibility-2.c: Fix return type.
* gcc.dg/analyzer/pr93355-localealias.c: Add xfail. Add expected
leak true +ve and uninit false +ve.
* gcc.dg/analyzer/pr94579.c: Add warning about missing return.
* gcc.dg/analyzer/pr98599-a.c: Add missing return stmts.
* gcc.dg/analyzer/pr99771-1.c: Fix expected locations of leaks.
* gcc.dg/analyzer/pr99774-2.c: Likewise.
* gcc.dg/analyzer/sensitive-1.c: Fix return types.
* gcc.dg/analyzer/state-diagram-1-sarif.py: Update.
* gcc.dg/analyzer/stdarg-1.c
(__analyzer_test_not_enough_args_2_middle): Add test coverage for
wording of call event with variadic args.
* gcc.dg/analyzer/strcmp-1.c: Fix return types.
* gcc.dg/analyzer/strcpy-1.c: Likewise.
* gcc.dg/analyzer/switch-enum-taint-1.c: Add warning about missing
return.
* gcc.dg/analyzer/switch.c: Fix return types.
* gcc.dg/analyzer/taint-assert.c: Likewise.
* gcc.dg/analyzer/taint-write-offset-1.c: Likewise.
* gcc.dg/analyzer/torture/analyzer-torture.exp: Drop
-fanalyzer-call-summaries.
* gcc.dg/analyzer/torture/boxed-ptr-1.c: Fix return type.
* gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c: Add
-Wno-analyzer-too-complex.
* gcc.dg/analyzer/torture/loop-inc-ptr-1.c: Skip at -O3 to avoid
changes to enode count.
* gcc.dg/analyzer/torture/pr102225.c: Consolidate on one line to
avoid caring about precise location of leak warning.
* gcc.dg/analyzer/torture/pr93379.c: Skip on -fno-fat-lto-objects.
Add warning about uninit.
* gcc.dg/analyzer/torture/stdarg-4.c: Replace UNKNOWN with
symbolic sum of params.
* gcc.dg/analyzer/untracked-1.c: Fix return type.
* gcc.dg/analyzer/use-after-free.c: Likewise.
* gcc.dg/analyzer/zlib-3.c: Add xfails.
* gcc.dg/plugin/analyzer_cpython_plugin.cc
(class refcnt_stmt_finder): Eliminate.
(check_refcnt): ...in favor of a call to
make_ploc_fixer_for_epath_for_leak_diagnostic.
* gcc.dg/plugin/analyzer_gil_plugin.cc: Update for
location-handling changes.
* gcc.dg/plugin/infoleak-CVE-2011-1078-1.c: Add missing
"return 0;".
* gcc.dg/plugin/infoleak-CVE-2011-1078-2.c: Fix return types.
* gcc.dg/plugin/infoleak-CVE-2017-18549-1.c: Likewise.
* gdc.dg/analyzer/analyzer.exp: Drop -fanalyzer-call-summaries.
* gfortran.dg/analyzer/analyzer.exp: Likewise.
* gfortran.dg/analyzer/uninit-pr63311.f90: Add
-Wno-analyzer-too-complex.
2025-12-12 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/121852
* gcc.dg/pr121852.c: New test.
2025-12-12 Tejas Belagod <tejas.belagod@arm.com>
Tamar Christina <tamar.christina@arm.com>
* g++.target/aarch64/sve/acle/general-c++/svbool_ternary.C: New test.
2025-12-12 Jakub Jelinek <jakub@redhat.com>
PR testsuite/123098
* gcc.dg/debug/dwarf2/omp-fesdr.c: Use #pragma omp masked
instead of #pragma omp master.
* g++.dg/debug/dwarf2/omp-fesdr.C: Likewise.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* gcc.target/loongarch/la64/add-const.c: New test.
* gcc.target/loongarch/la64/alsl-cost.c: New test.
* gcc.target/loongarch/la64/alsl_wu.c: New test.
* gcc.target/loongarch/la64/and-large-immediate-opt.c: New test.
* gcc.target/loongarch/la64/arch-func-attr-1.c: New test.
* gcc.target/loongarch/la64/arch-pragma-attr-1.c: New test.
* gcc.target/loongarch/la64/attr-model-1.c: New test.
* gcc.target/loongarch/la64/attr-model-2.c: New test.
* gcc.target/loongarch/la64/attr-model-3.c: New test.
* gcc.target/loongarch/la64/attr-model-4.c: New test.
* gcc.target/loongarch/la64/attr-model-5.c: New test.
* gcc.target/loongarch/la64/attr-model-diag.c: New test.
* gcc.target/loongarch/la64/attr-model-test.c: New test.
* gcc.target/loongarch/la64/bitint-alignments.c: New test.
* gcc.target/loongarch/la64/bitint-args.c: New test.
* gcc.target/loongarch/la64/bitint-sizes.c: New test.
* gcc.target/loongarch/la64/bitwise-shift-reassoc.c: New test.
* gcc.target/loongarch/la64/bitwise_extend.c: New test.
* gcc.target/loongarch/la64/bstrins-1.c: New test.
* gcc.target/loongarch/la64/bstrins-2.c: New test.
* gcc.target/loongarch/la64/bstrins-3.c: New test.
* gcc.target/loongarch/la64/bstrins-4.c: New test.
* gcc.target/loongarch/la64/bstrpick_alsl_paired.c: New test.
* gcc.target/loongarch/la64/bytepick_combine.c: New test.
* gcc.target/loongarch/la64/bytepick_shift_128.c: New test.
* gcc.target/loongarch/la64/can_inline_1.c: New test.
* gcc.target/loongarch/la64/can_inline_2.c: New test.
* gcc.target/loongarch/la64/can_inline_3.c: New test.
* gcc.target/loongarch/la64/can_inline_4.c: New test.
* gcc.target/loongarch/la64/can_inline_5.c: New test.
* gcc.target/loongarch/la64/can_inline_6.c: New test.
* gcc.target/loongarch/la64/cmodel-extreme-1.c: New test.
* gcc.target/loongarch/la64/cmodel-extreme-2.c: New test.
* gcc.target/loongarch/la64/cmodel-func-attr-1.c: New test.
* gcc.target/loongarch/la64/cmodel-pragma-attr-1.c: New test.
* gcc.target/loongarch/la64/cmov_ii.c: New test.
* gcc.target/loongarch/la64/compare-both-non-zero.c: New test.
* gcc.target/loongarch/la64/conditional-move-opt-1.c: New test.
* gcc.target/loongarch/la64/conditional-move-opt-2.c: New test.
* gcc.target/loongarch/la64/conditional-move-opt-3.c: New test.
* gcc.target/loongarch/la64/const-double-zero-stx.c: New test.
* gcc.target/loongarch/la64/crc-sext.c: New test.
* gcc.target/loongarch/la64/direct-extern-1.c: New test.
* gcc.target/loongarch/la64/div-div32.c: New test.
* gcc.target/loongarch/la64/div-no-div32.c: New test.
* gcc.target/loongarch/la64/divf.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-extreme-tls-desc.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-lto.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store-2.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store-3.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store-no-anchor.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-single-load-store.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-tls-desc.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-tls-ld-gd.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-auto-tls-le-ie.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-extreme-auto-tls-ld-gd.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-extreme-tls-desc.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-medium-auto-tls-ld-gd.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-medium-call36-auto-tls-ld-gd.c: New test.
* gcc.target/loongarch/la64/explicit-relocs-tls-desc.c: New test.
* gcc.target/loongarch/la64/extendsidi2-combine.c: New test.
* gcc.target/loongarch/la64/fclass-compile.c: New test.
* gcc.target/loongarch/la64/fclass-run.c: New test.
* gcc.target/loongarch/la64/flogb.c: New test.
* gcc.target/loongarch/la64/flt-abi-isa-1.c: New test.
* gcc.target/loongarch/la64/flt-abi-isa-2.c: New test.
* gcc.target/loongarch/la64/flt-abi-isa-3.c: New test.
* gcc.target/loongarch/la64/flt-abi-isa-4.c: New test.
* gcc.target/loongarch/la64/frint.c: New test.
* gcc.target/loongarch/la64/fscaleb.c: New test.
* gcc.target/loongarch/la64/ftint-no-inexact.c: New test.
* gcc.target/loongarch/la64/ftint.c: New test.
* gcc.target/loongarch/la64/func-call-1.c: New test.
* gcc.target/loongarch/la64/func-call-2.c: New test.
* gcc.target/loongarch/la64/func-call-3.c: New test.
* gcc.target/loongarch/la64/func-call-4.c: New test.
* gcc.target/loongarch/la64/func-call-5.c: New test.
* gcc.target/loongarch/la64/func-call-6.c: New test.
* gcc.target/loongarch/la64/func-call-7.c: New test.
* gcc.target/loongarch/la64/func-call-8.c: New test.
* gcc.target/loongarch/la64/func-call-extreme-1.c: New test.
* gcc.target/loongarch/la64/func-call-extreme-2.c: New test.
* gcc.target/loongarch/la64/func-call-extreme-3.c: New test.
* gcc.target/loongarch/la64/func-call-extreme-4.c: New test.
* gcc.target/loongarch/la64/func-call-extreme-5.c: New test.
* gcc.target/loongarch/la64/func-call-extreme-6.c: New test.
* gcc.target/loongarch/la64/func-call-medium-1.c: New test.
* gcc.target/loongarch/la64/func-call-medium-2.c: New test.
* gcc.target/loongarch/la64/func-call-medium-3.c: New test.
* gcc.target/loongarch/la64/func-call-medium-5.c: New test.
* gcc.target/loongarch/la64/func-call-medium-6.c: New test.
* gcc.target/loongarch/la64/func-call-medium-7.c: New test.
* gcc.target/loongarch/la64/func-call-medium-8.c: New test.
* gcc.target/loongarch/la64/func-call-medium-call36-1.c: New test.
* gcc.target/loongarch/la64/func-call-medium-call36.c: New test.
* gcc.target/loongarch/la64/imm-load.c: New test.
* gcc.target/loongarch/la64/imm-load1.c: New test.
* gcc.target/loongarch/la64/invariant-recip.c: New test.
* gcc.target/loongarch/la64/la64.exp: New test.
* gcc.target/loongarch/la64/larch-frecipe-builtin.c: New test.
* gcc.target/loongarch/la64/larch-frecipe-intrinsic.c: New test.
* gcc.target/loongarch/la64/lasx-func-attr-1.c: New test.
* gcc.target/loongarch/la64/lasx-pragma-attr-1.c: New test.
* gcc.target/loongarch/la64/lsx-func-attr-1.c: New test.
* gcc.target/loongarch/la64/lsx-pragma-attr-1.c: New test.
* gcc.target/loongarch/la64/math-float-128.c: New test.
* gcc.target/loongarch/la64/mem-and-mask-opt.c: New test.
* gcc.target/loongarch/la64/memcpy-vec-1.c: New test.
* gcc.target/loongarch/la64/memcpy-vec-2.c: New test.
* gcc.target/loongarch/la64/memcpy-vec-3.c: New test.
* gcc.target/loongarch/la64/mode-tieable-opt.c: New test.
* gcc.target/loongarch/la64/mov-zero-2.c: New test.
* gcc.target/loongarch/la64/movcf2gr-via-fr.c: New test.
* gcc.target/loongarch/la64/movcf2gr.c: New test.
* gcc.target/loongarch/la64/mul-const-reduction.c: New test.
* gcc.target/loongarch/la64/mulh_wu.c: New test.
* gcc.target/loongarch/la64/mulw_d_w.c: New test.
* gcc.target/loongarch/la64/mulw_d_wu.c: New test.
* gcc.target/loongarch/la64/pr109465-1.c: New test.
* gcc.target/loongarch/la64/pr109465-2.c: New test.
* gcc.target/loongarch/la64/pr109465-3.c: New test.
* gcc.target/loongarch/la64/pr113148.c: New test.
* gcc.target/loongarch/la64/pr114861.c: New test.
* gcc.target/loongarch/la64/pr118561.c: New test.
* gcc.target/loongarch/la64/pr118828-2.c: New test.
* gcc.target/loongarch/la64/pr118828-3.c: New test.
* gcc.target/loongarch/la64/pr118828-4.c: New test.
* gcc.target/loongarch/la64/pr118828.c: New test.
* gcc.target/loongarch/la64/pr118843.c: New test.
* gcc.target/loongarch/la64/pr119127.c: New test.
* gcc.target/loongarch/la64/pr121542.c: New test.
* gcc.target/loongarch/la64/pr121634.c: New test.
* gcc.target/loongarch/la64/pr121875.c: New test.
* gcc.target/loongarch/la64/prolog-opt.c: New test.
* gcc.target/loongarch/la64/recip-divf.c: New test.
* gcc.target/loongarch/la64/recip-sqrtf.c: New test.
* gcc.target/loongarch/la64/relocs-symbol-noaddend.c: New test.
* gcc.target/loongarch/la64/revb.c: New test.
* gcc.target/loongarch/la64/rotl-with-rotr.c: New test.
* gcc.target/loongarch/la64/rotrw.c: New test.
* gcc.target/loongarch/la64/sign-extend-1.c: New test.
* gcc.target/loongarch/la64/sign-extend-2.c: New test.
* gcc.target/loongarch/la64/sign-extend-3.c: New test.
* gcc.target/loongarch/la64/sign-extend-4.c: New test.
* gcc.target/loongarch/la64/sign-extend-5.c: New test.
* gcc.target/loongarch/la64/sign-extend-6.c: New test.
* gcc.target/loongarch/la64/sign-extend-bitwise.c: New test.
* gcc.target/loongarch/la64/sign_extend_ashift.c: New test.
* gcc.target/loongarch/la64/slt-sign-extend.c: New test.
* gcc.target/loongarch/la64/smuldi3_highpart.c: New test.
* gcc.target/loongarch/la64/spill-less.c: New test.
* gcc.target/loongarch/la64/sqrtf.c: New test.
* gcc.target/loongarch/la64/switch-qi.c: New test.
* gcc.target/loongarch/la64/tls-extreme-macro.c: New test.
* gcc.target/loongarch/la64/tls-gd-noplt.c: New test.
* gcc.target/loongarch/la64/tls-ie-extreme.c: New test.
* gcc.target/loongarch/la64/tls-ie-norelax.c: New test.
* gcc.target/loongarch/la64/tls-ie-relax.c: New test.
* gcc.target/loongarch/la64/tls-le-relax.c: New test.
* gcc.target/loongarch/la64/widen-mul-rtx-cost-signed.c: New test.
* gcc.target/loongarch/la64/widen-mul-rtx-cost-unsigned.c: New test.
* gcc.target/loongarch/la64/zero-size-field-pass.c: New test.
* gcc.target/loongarch/la64/zero-size-field-ret.c: New test.
* gcc.target/loongarch/vector/lasx/abd-lasx.c: New test.
* gcc.target/loongarch/vector/lasx/avg-ceil-lasx.c: New test.
* gcc.target/loongarch/vector/lasx/avg-floor-lasx.c: New test.
* gcc.target/loongarch/vector/lasx/fnmam4-vec.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-andn-iorn.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-extract-even_odd-opt.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-func-attr-2.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-pragma-attr-2.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-reduc-1.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvpermi_q-opt.c: New test.
* gcc.target/loongarch/vector/lasx/pr112476-2.c: New test.
* gcc.target/loongarch/vector/lasx/pr112476-4.c: New test.
* gcc.target/loongarch/vector/lasx/pr113033.c: New test.
* gcc.target/loongarch/vector/lasx/pragma-push-pop.c: New test.
* gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-b.c: New test.
* gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-d.c: New test.
* gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-h.c: New test.
* gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-w.c: New test.
* gcc.target/loongarch/vector/lasx/sad-lasx.c: New test.
* gcc.target/loongarch/vector/lasx/strict-align.c: New test.
* gcc.target/loongarch/vector/lasx/vec_pack_unpack_256.c: New test.
* gcc.target/loongarch/vector/lasx/vec_reduc_half.c: New test.
* gcc.target/loongarch/vector/lasx/vect-extract.c: New test.
* gcc.target/loongarch/vector/lasx/vect-frint-no-inexact.c: New test.
* gcc.target/loongarch/vector/lasx/vect-frint.c: New test.
* gcc.target/loongarch/vector/lasx/vect-ftint-no-inexact.c: New test.
* gcc.target/loongarch/vector/lasx/vect-ftint.c: New test.
* gcc.target/loongarch/vector/lasx/vect-ld-st-imm12.c: New test.
* gcc.target/loongarch/vector/lasx/vect-muh.c: New test.
* gcc.target/loongarch/vector/lasx/vect-rotr.c: New test.
* gcc.target/loongarch/vector/lasx/vect-shuf-fp.c: New test.
* gcc.target/loongarch/vector/lasx/vect-slp-two-operator.c: New test.
* gcc.target/loongarch/vector/lasx/vect-widen-add.c: New test.
* gcc.target/loongarch/vector/lasx/vect-widen-mul.c: New test.
* gcc.target/loongarch/vector/lasx/vect-widen-sub.c: New test.
* gcc.target/loongarch/vector/lasx/vfmax-vfmin.c: New test.
* gcc.target/loongarch/vector/lasx/vrepli.c: New test.
* gcc.target/loongarch/vector/lasx/wide-mul-reduc-1.c: New test.
* gcc.target/loongarch/vector/lasx/wide-mul-reduc-2.c: New test.
* gcc.target/loongarch/vector/lasx/xvfcmp-d.c: New test.
* gcc.target/loongarch/vector/lasx/xvfcmp-f.c: New test.
* gcc.target/loongarch/vector/lsx/abd-lsx.c: New test.
* gcc.target/loongarch/vector/lsx/avg-ceil-lsx.c: New test.
* gcc.target/loongarch/vector/lsx/avg-floor-lsx.c: New test.
* gcc.target/loongarch/vector/lsx/lsx-andn-iorn.c: New test.
* gcc.target/loongarch/vector/lsx/lsx-func-attr-2.c: New test.
* gcc.target/loongarch/vector/lsx/lsx-pragma-attr-2.c: New test.
* gcc.target/loongarch/vector/lsx/mov-zero-1.c: New test.
* gcc.target/loongarch/vector/lsx/popcnt.c: New test.
* gcc.target/loongarch/vector/lsx/popcount.c: New test.
* gcc.target/loongarch/vector/lsx/pr112476-1.c: New test.
* gcc.target/loongarch/vector/lsx/pr112476-3.c: New test.
* gcc.target/loongarch/vector/lsx/pr119084.c: New test.
* gcc.target/loongarch/vector/lsx/pr121064.c: New test.
* gcc.target/loongarch/vector/lsx/pr122097.c: New test.
* gcc.target/loongarch/vector/lsx/rotl-with-vrotr-b.c: New test.
* gcc.target/loongarch/vector/lsx/rotl-with-vrotr-d.c: New test.
* gcc.target/loongarch/vector/lsx/rotl-with-vrotr-h.c: New test.
* gcc.target/loongarch/vector/lsx/rotl-with-vrotr-w.c: New test.
* gcc.target/loongarch/vector/lsx/sad-lsx.c: New test.
* gcc.target/loongarch/vector/lsx/vec_pack_unpack_128.c: New test.
* gcc.target/loongarch/vector/lsx/vect-frint-scalar-no-inexact.c: New test.
* gcc.target/loongarch/vector/lsx/vect-frint-scalar.c: New test.
* gcc.target/loongarch/vector/lsx/vect-shift-imm-round.c: New test.
* gcc.target/loongarch/vector/lsx/vector-func-attr-1.c: New test.
* gcc.target/loongarch/vector/lsx/vector-pragma-attr-1.c: New test.
* gcc.target/loongarch/vector/lsx/vfcmp-d.c: New test.
* gcc.target/loongarch/vector/lsx/vfcmp-f.c: New test.
* gcc.target/loongarch/vector/lsx/xorsign-run.c: New test.
* gcc.target/loongarch/vector/lsx/xorsign.c: New test.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* g++.target/loongarch/bytepick.C: Skip on LA32.
* g++.target/loongarch/got-load.C: Likewise.
* g++.target/loongarch/pr106828.C: Likewise.
* g++.target/loongarch/vect-ashr-lshr.C: Add loongarch_asx check.
* gcc.dg/ifcvt-4.c: Skip on LA32.
* gcc.dg/stack-usage-1.c: Change __loongarch_lp64 to __loongarch__.
* gcc.dg/tree-ssa/gen-vect-2.c: Skip on LoongArch.
* gcc.dg/tree-ssa/gen-vect-25.c: Likewise.
* gcc.dg/tree-ssa/pr83403-1.c: Add dg-additional-options.
* gcc.dg/tree-ssa/pr83403-2.c: Likewise.
* gcc.target/loongarch/float-load.c: Add hard_float check.
* gcc.target/loongarch/larch-builtin.c: Skip some check on LA32.
* gcc.target/loongarch/pr115752.c: Add hard_float check.
* gcc.target/loongarch/vector/loongarch-vector.exp: Add
check_effective_target_loongarch_sx.
* lib/target-supports.exp: Add hard float condition to
check_effective_target_scalar_all_fma.
Disable loongarch for check_effective_target_vect_cmdline_needed.
Add check_effective_target_loongarch_sx condition to
check_vect_support_and_set_flags.
* gcc.target/loongarch/abd-lasx.c: Removed.
* gcc.target/loongarch/abd-lsx.c: Removed.
* gcc.target/loongarch/add-const.c: Removed.
* gcc.target/loongarch/alsl-cost.c: Removed.
* gcc.target/loongarch/alsl_wu.c: Removed.
* gcc.target/loongarch/and-large-immediate-opt.c: Removed.
* gcc.target/loongarch/arch-func-attr-1.c: Removed.
* gcc.target/loongarch/arch-pragma-attr-1.c: Removed.
* gcc.target/loongarch/attr-model-1.c: Removed.
* gcc.target/loongarch/attr-model-2.c: Removed.
* gcc.target/loongarch/attr-model-3.c: Removed.
* gcc.target/loongarch/attr-model-4.c: Removed.
* gcc.target/loongarch/attr-model-5.c: Removed.
* gcc.target/loongarch/attr-model-diag.c: Removed.
* gcc.target/loongarch/attr-model-test.c: Removed.
* gcc.target/loongarch/avg-ceil-lasx.c: Removed.
* gcc.target/loongarch/avg-ceil-lsx.c: Removed.
* gcc.target/loongarch/avg-floor-lasx.c: Removed.
* gcc.target/loongarch/avg-floor-lsx.c: Removed.
* gcc.target/loongarch/bitint-alignments.c: Removed.
* gcc.target/loongarch/bitint-args.c: Removed.
* gcc.target/loongarch/bitint-sizes.c: Removed.
* gcc.target/loongarch/bitwise-shift-reassoc.c: Removed.
* gcc.target/loongarch/bitwise_extend.c: Removed.
* gcc.target/loongarch/bstrins-1.c: Removed.
* gcc.target/loongarch/bstrins-2.c: Removed.
* gcc.target/loongarch/bstrins-3.c: Removed.
* gcc.target/loongarch/bstrins-4.c: Removed.
* gcc.target/loongarch/bstrpick_alsl_paired.c: Removed.
* gcc.target/loongarch/bytepick_combine.c: Removed.
* gcc.target/loongarch/bytepick_shift_128.c: Removed.
* gcc.target/loongarch/can_inline_1.c: Removed.
* gcc.target/loongarch/can_inline_2.c: Removed.
* gcc.target/loongarch/can_inline_3.c: Removed.
* gcc.target/loongarch/can_inline_4.c: Removed.
* gcc.target/loongarch/can_inline_5.c: Removed.
* gcc.target/loongarch/can_inline_6.c: Removed.
* gcc.target/loongarch/cmodel-extreme-1.c: Removed.
* gcc.target/loongarch/cmodel-extreme-2.c: Removed.
* gcc.target/loongarch/cmodel-func-attr-1.c: Removed.
* gcc.target/loongarch/cmodel-pragma-attr-1.c: Removed.
* gcc.target/loongarch/cmov_ii.c: Removed.
* gcc.target/loongarch/compare-both-non-zero.c: Removed.
* gcc.target/loongarch/conditional-move-opt-1.c: Removed.
* gcc.target/loongarch/conditional-move-opt-2.c: Removed.
* gcc.target/loongarch/conditional-move-opt-3.c: Removed.
* gcc.target/loongarch/const-double-zero-stx.c: Removed.
* gcc.target/loongarch/crc-sext.c: Removed.
* gcc.target/loongarch/direct-extern-1.c: Removed.
* gcc.target/loongarch/div-div32.c: Removed.
* gcc.target/loongarch/div-no-div32.c: Removed.
* gcc.target/loongarch/divf.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-extreme-tls-desc.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-lto.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-single-load-store-2.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-single-load-store-3.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-single-load-store-no-anchor.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-single-load-store.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-tls-desc.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-tls-ld-gd.c: Removed.
* gcc.target/loongarch/explicit-relocs-auto-tls-le-ie.c: Removed.
* gcc.target/loongarch/explicit-relocs-extreme-auto-tls-ld-gd.c: Removed.
* gcc.target/loongarch/explicit-relocs-extreme-tls-desc.c: Removed.
* gcc.target/loongarch/explicit-relocs-medium-auto-tls-ld-gd.c: Removed.
* gcc.target/loongarch/explicit-relocs-medium-call36-auto-tls-ld-gd.c: Removed.
* gcc.target/loongarch/explicit-relocs-tls-desc.c: Removed.
* gcc.target/loongarch/extendsidi2-combine.c: Removed.
* gcc.target/loongarch/fclass-compile.c: Removed.
* gcc.target/loongarch/fclass-run.c: Removed.
* gcc.target/loongarch/flogb.c: Removed.
* gcc.target/loongarch/flt-abi-isa-1.c: Removed.
* gcc.target/loongarch/flt-abi-isa-2.c: Removed.
* gcc.target/loongarch/flt-abi-isa-3.c: Removed.
* gcc.target/loongarch/flt-abi-isa-4.c: Removed.
* gcc.target/loongarch/fnmam4-vec.c: Removed.
* gcc.target/loongarch/frint.c: Removed.
* gcc.target/loongarch/fscaleb.c: Removed.
* gcc.target/loongarch/ftint-no-inexact.c: Removed.
* gcc.target/loongarch/ftint.c: Removed.
* gcc.target/loongarch/func-call-1.c: Removed.
* gcc.target/loongarch/func-call-2.c: Removed.
* gcc.target/loongarch/func-call-3.c: Removed.
* gcc.target/loongarch/func-call-4.c: Removed.
* gcc.target/loongarch/func-call-5.c: Removed.
* gcc.target/loongarch/func-call-6.c: Removed.
* gcc.target/loongarch/func-call-7.c: Removed.
* gcc.target/loongarch/func-call-8.c: Removed.
* gcc.target/loongarch/func-call-extreme-1.c: Removed.
* gcc.target/loongarch/func-call-extreme-2.c: Removed.
* gcc.target/loongarch/func-call-extreme-3.c: Removed.
* gcc.target/loongarch/func-call-extreme-4.c: Removed.
* gcc.target/loongarch/func-call-extreme-5.c: Removed.
* gcc.target/loongarch/func-call-extreme-6.c: Removed.
* gcc.target/loongarch/func-call-medium-1.c: Removed.
* gcc.target/loongarch/func-call-medium-2.c: Removed.
* gcc.target/loongarch/func-call-medium-3.c: Removed.
* gcc.target/loongarch/func-call-medium-5.c: Removed.
* gcc.target/loongarch/func-call-medium-6.c: Removed.
* gcc.target/loongarch/func-call-medium-7.c: Removed.
* gcc.target/loongarch/func-call-medium-8.c: Removed.
* gcc.target/loongarch/func-call-medium-call36-1.c: Removed.
* gcc.target/loongarch/func-call-medium-call36.c: Removed.
* gcc.target/loongarch/imm-load.c: Removed.
* gcc.target/loongarch/imm-load1.c: Removed.
* gcc.target/loongarch/invariant-recip.c: Removed.
* gcc.target/loongarch/larch-frecipe-builtin.c: Removed.
* gcc.target/loongarch/larch-frecipe-intrinsic.c: Removed.
* gcc.target/loongarch/lasx-andn-iorn.c: Removed.
* gcc.target/loongarch/lasx-extract-even_odd-opt.c: Removed.
* gcc.target/loongarch/lasx-func-attr-1.c: Removed.
* gcc.target/loongarch/lasx-func-attr-2.c: Removed.
* gcc.target/loongarch/lasx-pragma-attr-1.c: Removed.
* gcc.target/loongarch/lasx-pragma-attr-2.c: Removed.
* gcc.target/loongarch/lasx-reduc-1.c: Removed.
* gcc.target/loongarch/lasx-xvpermi_q-opt.c: Removed.
* gcc.target/loongarch/lsx-andn-iorn.c: Removed.
* gcc.target/loongarch/lsx-func-attr-1.c: Removed.
* gcc.target/loongarch/lsx-func-attr-2.c: Removed.
* gcc.target/loongarch/lsx-pragma-attr-1.c: Removed.
* gcc.target/loongarch/lsx-pragma-attr-2.c: Removed.
* gcc.target/loongarch/math-float-128.c: Removed.
* gcc.target/loongarch/mem-and-mask-opt.c: Removed.
* gcc.target/loongarch/memcpy-vec-1.c: Removed.
* gcc.target/loongarch/memcpy-vec-2.c: Removed.
* gcc.target/loongarch/memcpy-vec-3.c: Removed.
* gcc.target/loongarch/mode-tieable-opt.c: Removed.
* gcc.target/loongarch/mov-zero-1.c: Removed.
* gcc.target/loongarch/mov-zero-2.c: Removed.
* gcc.target/loongarch/movcf2gr-via-fr.c: Removed.
* gcc.target/loongarch/movcf2gr.c: Removed.
* gcc.target/loongarch/mul-const-reduction.c: Removed.
* gcc.target/loongarch/mulh_wu.c: Removed.
* gcc.target/loongarch/mulw_d_w.c: Removed.
* gcc.target/loongarch/mulw_d_wu.c: Removed.
* gcc.target/loongarch/popcnt.c: Removed.
* gcc.target/loongarch/popcount.c: Removed.
* gcc.target/loongarch/pr109465-1.c: Removed.
* gcc.target/loongarch/pr109465-2.c: Removed.
* gcc.target/loongarch/pr109465-3.c: Removed.
* gcc.target/loongarch/pr112476-1.c: Removed.
* gcc.target/loongarch/pr112476-2.c: Removed.
* gcc.target/loongarch/pr112476-3.c: Removed.
* gcc.target/loongarch/pr112476-4.c: Removed.
* gcc.target/loongarch/pr113033.c: Removed.
* gcc.target/loongarch/pr113148.c: Removed.
* gcc.target/loongarch/pr114861.c: Removed.
* gcc.target/loongarch/pr118561.c: Removed.
* gcc.target/loongarch/pr118828-2.c: Removed.
* gcc.target/loongarch/pr118828-3.c: Removed.
* gcc.target/loongarch/pr118828-4.c: Removed.
* gcc.target/loongarch/pr118828.c: Removed.
* gcc.target/loongarch/pr118843.c: Removed.
* gcc.target/loongarch/pr119084.c: Removed.
* gcc.target/loongarch/pr119127.c: Removed.
* gcc.target/loongarch/pr121064.c: Removed.
* gcc.target/loongarch/pr121542.c: Removed.
* gcc.target/loongarch/pr121634.c: Removed.
* gcc.target/loongarch/pr121875.c: Removed.
* gcc.target/loongarch/pr122097.c: Removed.
* gcc.target/loongarch/pragma-push-pop.c: Removed.
* gcc.target/loongarch/prolog-opt.c: Removed.
* gcc.target/loongarch/recip-divf.c: Removed.
* gcc.target/loongarch/recip-sqrtf.c: Removed.
* gcc.target/loongarch/relocs-symbol-noaddend.c: Removed.
* gcc.target/loongarch/revb.c: Removed.
* gcc.target/loongarch/rotl-with-rotr.c: Removed.
* gcc.target/loongarch/rotl-with-vrotr-b.c: Removed.
* gcc.target/loongarch/rotl-with-vrotr-d.c: Removed.
* gcc.target/loongarch/rotl-with-vrotr-h.c: Removed.
* gcc.target/loongarch/rotl-with-vrotr-w.c: Removed.
* gcc.target/loongarch/rotl-with-xvrotr-b.c: Removed.
* gcc.target/loongarch/rotl-with-xvrotr-d.c: Removed.
* gcc.target/loongarch/rotl-with-xvrotr-h.c: Removed.
* gcc.target/loongarch/rotl-with-xvrotr-w.c: Removed.
* gcc.target/loongarch/rotrw.c: Removed.
* gcc.target/loongarch/sad-lasx.c: Removed.
* gcc.target/loongarch/sad-lsx.c: Removed.
* gcc.target/loongarch/sign-extend-1.c: Removed.
* gcc.target/loongarch/sign-extend-2.c: Removed.
* gcc.target/loongarch/sign-extend-3.c: Removed.
* gcc.target/loongarch/sign-extend-4.c: Removed.
* gcc.target/loongarch/sign-extend-5.c: Removed.
* gcc.target/loongarch/sign-extend-6.c: Removed.
* gcc.target/loongarch/sign-extend-bitwise.c: Removed.
* gcc.target/loongarch/sign_extend_ashift.c: Removed.
* gcc.target/loongarch/slt-sign-extend.c: Removed.
* gcc.target/loongarch/smuldi3_highpart.c: Removed.
* gcc.target/loongarch/spill-less.c: Removed.
* gcc.target/loongarch/sqrtf.c: Removed.
* gcc.target/loongarch/strict-align.c: Removed.
* gcc.target/loongarch/switch-qi.c: Removed.
* gcc.target/loongarch/tls-extreme-macro.c: Removed.
* gcc.target/loongarch/tls-gd-noplt.c: Removed.
* gcc.target/loongarch/tls-ie-extreme.c: Removed.
* gcc.target/loongarch/tls-ie-norelax.c: Removed.
* gcc.target/loongarch/tls-ie-relax.c: Removed.
* gcc.target/loongarch/tls-le-relax.c: Removed.
* gcc.target/loongarch/vec_pack_unpack_128.c: Removed.
* gcc.target/loongarch/vec_pack_unpack_256.c: Removed.
* gcc.target/loongarch/vec_reduc_half.c: Removed.
* gcc.target/loongarch/vect-extract.c: Removed.
* gcc.target/loongarch/vect-frint-no-inexact.c: Removed.
* gcc.target/loongarch/vect-frint-scalar-no-inexact.c: Removed.
* gcc.target/loongarch/vect-frint-scalar.c: Removed.
* gcc.target/loongarch/vect-frint.c: Removed.
* gcc.target/loongarch/vect-ftint-no-inexact.c: Removed.
* gcc.target/loongarch/vect-ftint.c: Removed.
* gcc.target/loongarch/vect-ld-st-imm12.c: Removed.
* gcc.target/loongarch/vect-muh.c: Removed.
* gcc.target/loongarch/vect-rotr.c: Removed.
* gcc.target/loongarch/vect-shift-imm-round.c: Removed.
* gcc.target/loongarch/vect-shuf-fp.c: Removed.
* gcc.target/loongarch/vect-slp-two-operator.c: Removed.
* gcc.target/loongarch/vect-widen-add.c: Removed.
* gcc.target/loongarch/vect-widen-mul.c: Removed.
* gcc.target/loongarch/vect-widen-sub.c: Removed.
* gcc.target/loongarch/vector-func-attr-1.c: Removed.
* gcc.target/loongarch/vector-pragma-attr-1.c: Removed.
* gcc.target/loongarch/vfcmp-d.c: Removed.
* gcc.target/loongarch/vfcmp-f.c: Removed.
* gcc.target/loongarch/vfmax-vfmin.c: Removed.
* gcc.target/loongarch/vrepli.c: Removed.
* gcc.target/loongarch/wide-mul-reduc-1.c: Removed.
* gcc.target/loongarch/wide-mul-reduc-2.c: Removed.
* gcc.target/loongarch/widen-mul-rtx-cost-signed.c: Removed.
* gcc.target/loongarch/widen-mul-rtx-cost-unsigned.c: Removed.
* gcc.target/loongarch/xorsign-run.c: Removed.
* gcc.target/loongarch/xorsign.c: Removed.
* gcc.target/loongarch/xvfcmp-d.c: Removed.
* gcc.target/loongarch/xvfcmp-f.c: Removed.
* gcc.target/loongarch/zero-size-field-pass.c: Removed.
* gcc.target/loongarch/zero-size-field-ret.c: Removed.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* gcc.target/loongarch/la32/memcpy.c: New test.
2025-12-12 Jiajie Chen <c@jia.je>
* gcc.target/loongarch/la32/trunc_int_for_mode.c: New test.
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* gcc.target/loongarch/la32/and.c: New test.
* gcc.target/loongarch/la32/la32.exp: New test.
2025-12-12 Jose E. Marchesi <jose.marchesi@oracle.com>
* algol68/execute/manorboy.a68: New file.
2025-12-11 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2025-12-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/107406 PR fortran/107406

View File

@ -1,3 +1,10 @@
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
Jiajie Chen <c@jia.je>
* longlong.h (count_leading_zeros): Delete because LA32R no clz.
(count_trailing_zeros): Delete because LA32R no ctz.
(COUNT_LEADING_ZEROS_0): Delete.
2025-12-01 Andrew Stubbs <ams@baylibre.com> 2025-12-01 Andrew Stubbs <ams@baylibre.com>
* hsa.h: Import newer version. * hsa.h: Import newer version.

View File

@ -1,3 +1,11 @@
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
* configure: Regenerate.
* configure.ac:
* config/loongarch/t-crtstuff-la32: New file.
* config/loongarch/t-crtstuff: Rename to t-crtstuff-la64.
* config/loongarch/t-crtstuff-la64: New file.
2025-12-09 John Ericson <git@JohnEricson.me> 2025-12-09 John Ericson <git@JohnEricson.me>
* config/rs6000/t-slibgcc-aix: Instead of using a * config/rs6000/t-slibgcc-aix: Instead of using a

View File

@ -1,3 +1,27 @@
2025-12-12 Tobias Burnus <tburnus@baylibre.com>
* testsuite/libgomp.fortran/dep-uses-allocators.f90: Properly
escape '(..)' in dg-warning.
2025-12-12 Tobias Burnus <tburnus@baylibre.com>
* testsuite/libgomp.fortran/dep-uses-allocators.f90: Update
dg-warning.
2025-12-12 Tobias Burnus <tburnus@baylibre.com>
* libgomp.texi (OpenMP Implementation Status): Add missing '@tab';
claim initial partial support for 'declare mapper',
'uses_allocators', and map iterators.
2025-12-12 Chung-Lin Tang <cltang@baylibre.com>
Tobias Burnus <tburnus@baylibre.com>
Andrew Stubbs <ams@baylibre.com>
* testsuite/libgomp.fortran/uses_allocators_1.f90: Add check for
omp_null_allocator.
* testsuite/libgomp.fortran/uses_allocators-7.f90: New test.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/121114 PR libstdc++/121114

View File

@ -1,3 +1,8 @@
2025-12-12 mengqinggang <mengqinggang@loongson.cn>
Jiajie Chen <c@jia.je>
* config/loongarch/asm.h: Fix ilp32 detection.
2025-11-19 Martin Liska <martin.liska@hey.com> 2025-11-19 Martin Liska <martin.liska@hey.com>
* acinclude.m4:: Add detection for wild linker. * acinclude.m4:: Add detection for wild linker.

View File

@ -1,3 +1,7 @@
2025-12-12 Luc Grosheintz <luc.grosheintz@gmail.com>
* include/std/mdspan (submdspan): Fix missing '::template'.
2025-12-11 Jakub Jelinek <jakub@redhat.com> 2025-12-11 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/121114 PR libstdc++/121114