aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--gcc/ChangeLog91
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/ada/ChangeLog41
-rw-r--r--gcc/c/ChangeLog15
-rw-r--r--gcc/config/loongarch/lasx.md42
-rw-r--r--gcc/config/loongarch/loongarch-protos.h1
-rw-r--r--gcc/config/loongarch/loongarch.cc48
-rw-r--r--gcc/config/loongarch/predicates.md16
-rw-r--r--gcc/doc/extend.texi7
-rw-r--r--gcc/fortran/ChangeLog23
-rw-r--r--gcc/fortran/trans-expr.cc24
-rw-r--r--gcc/fortran/trans-intrinsic.cc22
-rw-r--r--gcc/m2/ChangeLog76
-rw-r--r--gcc/testsuite/ChangeLog102
-rw-r--r--gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c4
-rw-r--r--gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c17
-rw-r--r--gcc/testsuite/gfortran.dg/is_contiguous_5.f90126
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/t-vxworks2
-rw-r--r--libgcobol/ChangeLog5
-rw-r--r--libgcobol/xmlparse.cc2
-rw-r--r--libgm2/ChangeLog7
-rw-r--r--libstdc++-v3/ChangeLog17
24 files changed, 686 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index c16a3c0..5b28068 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2025-10-24 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR driver/81358
+ * Makefile.tpl: Move generation of dependencies for libatomic out
+ of loop over 'target_modules'.
+ * Makefile.in: Regenerate.
+
2025-10-22 Josef Melcr <jmelcr02@gmail.com>
* MAINTAINERS: Update my contact information.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dd930d6..8bdba01 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,94 @@
+2025-10-25 Sam James <sam@gentoo.org>
+
+ * doc/extend.texi (nocf_check): Fix syntax errors in example.
+
+2025-10-25 Jiahao Xu <xujiahao@loongson.cn>
+
+ * config/loongarch/lasx.md (vec_extract<mode><lasxhalf>): New define_expand.
+ (vec_extract_lo_<mode>): New define_insn_and_split.
+ (vec_extract_hi_<mode>): New define_insn.
+ * config/loongarch/loongarch-protos.h (loongarch_check_vect_par_cnst_half)
+ New function prototype.
+ * config/loongarch/loongarch.cc (loongarch_split_reduction):
+ Implement TARGET_VECTORIZE_SPLIT_REDUCTION.
+ (loongarch_check_vect_par_cnst_half): New function.
+ * config/loongarch/predicates.md
+ (vect_par_cnst_low_half): New predicate.
+ (vect_par_cnst_high_half): New predicate.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/114025
+ * gimple-range-fold.cc (fold_using_range::condexpr_adjust): Handle
+ the same ssa_name in the condition and the COND_EXPR better.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ * range-op.cc (operator_bitwise_and::wi_fold): Split signed
+ operations crossing zero into 2 operations.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/118254
+ PR tree-optimization/114331
+ * range-op.cc (operator_cast::fold_range): When VARYING is
+ reached, update the bitmask if we reach VARYING.
+ (operator_cast::op1_range): For truncating casts, create a
+ bitmask bit in LHS.
+
+2025-10-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.md (call_internal, call_value_internal,
+ sibcall_internal, sibcall_value_internal): Remove 'n'-constraint.
+
+2025-10-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
+
+ * config/xtensa/xtensa.md (*addsubx, *subsi3_from_const,
+ *xtensa_clamps, *andsi3_const_pow2_minus_one,
+ *andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
+ *splice_bits, extvsi_internal, extzvsi_internal,
+ *extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx, insvsi, *lsiu, *ssiu,
+ *lsip, *ssip, *shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1,
+ *shlrd_const, *shlrd_per_byte_omit_AND, *masktrue_const_bitcmpl,
+ *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
+ *masktrue_const_shifted_mask, call_internal, call_value_internal,
+ sibcall_internal, sibcall_value_internal, entry,
+ *eqne_zero_masked_bits, *eqne_in_range): Remove 'i'-constraint.
+
+2025-10-24 Josef Melcr <jmelcr02@gmail.com>
+
+ PR middle-end/122392
+ * attr-callback.cc (callback_build_attr): Remove erroneous
+ annotation.
+
+2025-10-24 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-loop.cc (vectorizable_reduction): SLP-ify reduction
+ operation processing a bit more.
+
+2025-10-24 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/122406
+ * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Create
+ the SLP nodes for the conversions around the reduction
+ operation if required.
+
+2025-10-24 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR fortran/121452
+ * omp-low.cc (check_omp_nesting_restrictions): Accept an
+ OMP_STRUCTURED_BLOCK in a collapsed simd region and in an ordered loop.
+
+2025-10-24 Pengfei Li <Pengfei.Li2@arm.com>
+
+ * match.pd: Fold VEC_PERM_EXPR chains implementing vector
+ concat-and-extract.
+
+2025-10-24 Olivier Hainque <hainque@adacore.com>
+
+ * config/rs6000/vxworks.h (SET_CMODEL): Undefine before
+ (re)defining.
+
2025-10-23 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Better handling
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index a234d9f..8a8350a 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20251024
+20251026
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 806a2ca..a732e94 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,44 @@
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/80033
+ * gcc-interface/Makefile.in (force): Restore.
+
+2025-10-24 Nicolas Boulenguez <nicolas@debian.org>
+
+ PR ada/80033
+ * gcc-interface/Makefile.in (deftarg.o): Delete.
+ (init-vxsim.o): Likewise.
+ (force): Likewise.
+
+2025-10-24 Mivirl <octoberstargazer7405@mivirl.dev>
+
+ PR ada/122367
+ * rtinit.c (__gnat_runtime_initialize) [__MINGW32__]: Fix detection
+ of quoted arguments.
+
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/118782
+ * styleg.adb (Is_Box_Comment): Also stop the loop at EOF.
+
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/113516
+ * s-oscons-tmplt.c [_WIN32]: Undefine POLLPRI before redefining it.
+
+2025-10-24 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/98879
+ * terminals.c (__gnat_setup_child_communication) [_WIN32]: Add else
+ blocks in the processing of the data returned by ReadFile.
+
+2025-10-24 Nicolas Boulenguez <nicolas@debian.org>
+
+ PR ada/81087
+ * gnatlink.adb (Is_Prefix): Move around, streamline and return false
+ when the prefix is not strict.
+ (Gnatlink): Fix other instances of incorrect lower bound assumption.
+
2025-10-20 Eric Botcazou <ebotcazou@adacore.com>
PR ada/102078
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 6f51dd9..89a1bbe 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,18 @@
+2025-10-24 Joseph Myers <josmyers@redhat.com>
+
+ * c-parser.cc (c_parser_next_tokens_start_typename)
+ (c_parser_next_tokens_start_declaration): Add argument for token
+ to start from
+ (c_parser_next_tokens_start_declaration): Check for whether static
+ assertion followed by semicolon.
+ (c_parser_check_balanced_raw_token_sequence): Declare earlier.
+ (c_parser_compound_statement_nostart, c_parser_for_statement): Use
+ c_parser_next_tokens_start_declaration not
+ c_token_starts_declaration on second token.
+ (c_parser_unary_expression): Handle static assertions.
+ * c-parser.h (c_parser_next_tokens_start_declaration): Add
+ argument.
+
2025-10-21 Martin Uecker <uecker@tugraz.at>
* c-decl.cc (build_array_declarator): Remove error.
diff --git a/gcc/config/loongarch/lasx.md b/gcc/config/loongarch/lasx.md
index 3d71f30..eed4d2b 100644
--- a/gcc/config/loongarch/lasx.md
+++ b/gcc/config/loongarch/lasx.md
@@ -633,6 +633,48 @@
[(set_attr "move_type" "fmove")
(set_attr "mode" "<UNITMODE>")])
+(define_expand "vec_extract<mode><lasxhalf>"
+ [(match_operand:<VHMODE256_ALL> 0 "register_operand")
+ (match_operand:LASX 1 "register_operand")
+ (match_operand 2 "const_0_or_1_operand")]
+ "ISA_HAS_LASX"
+{
+ if (INTVAL (operands[2]))
+ {
+ operands[2] = loongarch_lsx_vec_parallel_const_half (<MODE>mode, true);
+ emit_insn (gen_vec_extract_hi_<mode> (operands[0], operands[1],
+ operands[2]));
+ }
+ else
+ {
+ operands[2] = loongarch_lsx_vec_parallel_const_half (<MODE>mode, false);
+ emit_insn (gen_vec_extract_lo_<mode> (operands[0], operands[1],
+ operands[2]));
+ }
+ DONE;
+})
+
+(define_insn_and_split "vec_extract_lo_<mode>"
+ [(set (match_operand:<VHMODE256_ALL> 0 "register_operand" "=f")
+ (vec_select:<VHMODE256_ALL>
+ (match_operand:LASX 1 "register_operand" "f")
+ (match_operand:LASX 2 "vect_par_cnst_low_half")))]
+ "ISA_HAS_LASX"
+ "#"
+ "&& reload_completed"
+ [(set (match_dup 0) (match_dup 1))]
+ "operands[1] = gen_lowpart (<VHMODE256_ALL>mode, operands[1]);")
+
+(define_insn "vec_extract_hi_<mode>"
+ [(set (match_operand:<VHMODE256_ALL> 0 "register_operand" "=f")
+ (vec_select:<VHMODE256_ALL>
+ (match_operand:LASX 1 "register_operand" "f")
+ (match_operand:LASX 2 "vect_par_cnst_high_half")))]
+ "ISA_HAS_LASX"
+ "xvpermi.d\t%u0,%u1,0xe"
+ [(set_attr "move_type" "fmove")
+ (set_attr "mode" "<MODE>")])
+
(define_expand "vec_perm<mode>"
[(match_operand:LASX 0 "register_operand")
(match_operand:LASX 1 "register_operand")
diff --git a/gcc/config/loongarch/loongarch-protos.h b/gcc/config/loongarch/loongarch-protos.h
index 6139af4..6ecbe27 100644
--- a/gcc/config/loongarch/loongarch-protos.h
+++ b/gcc/config/loongarch/loongarch-protos.h
@@ -121,6 +121,7 @@ extern bool loongarch_const_vector_same_int_p (rtx, machine_mode,
extern bool loongarch_const_vector_shuffle_set_p (rtx, machine_mode);
extern bool loongarch_const_vector_bitimm_set_p (rtx, machine_mode);
extern bool loongarch_const_vector_bitimm_clr_p (rtx, machine_mode);
+extern bool loongarch_check_vect_par_cnst_half (rtx, machine_mode, bool);
extern rtx loongarch_const_vector_vrepli (rtx, machine_mode);
extern rtx loongarch_lsx_vec_parallel_const_half (machine_mode, bool);
extern rtx loongarch_gen_const_int_vector (machine_mode, HOST_WIDE_INT);
diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc
index 3fe8c76..c782cac 100644
--- a/gcc/config/loongarch/loongarch.cc
+++ b/gcc/config/loongarch/loongarch.cc
@@ -1846,6 +1846,37 @@ loongarch_const_vector_shuffle_set_p (rtx op, machine_mode mode)
return true;
}
+/* Check if OP is a PARALLEL RTX with CONST_INT elements representing
+ the HIGH (high_p == TRUE) or LOW (high_p == FALSE) half of a vector
+ for mode MODE. Returns true if the pattern matches, false otherwise. */
+
+bool
+loongarch_check_vect_par_cnst_half (rtx op, machine_mode mode, bool high_p)
+{
+ int nunits = XVECLEN (op, 0);
+ int nelts = GET_MODE_NUNITS (mode);
+
+ if (!known_eq (nelts, nunits * 2))
+ return false;
+
+ rtx first = XVECEXP (op, 0, 0);
+ if (!CONST_INT_P (first))
+ return false;
+
+ int base = high_p ? nelts / 2 : 0;
+ if (INTVAL (first) != base)
+ return false;
+
+ for (int i = 1; i < nunits; i++)
+ {
+ rtx elem = XVECEXP (op, 0, i);
+ if (!CONST_INT_P (elem) || INTVAL (elem) != INTVAL (first) + i)
+ return false;
+ }
+
+ return true;
+}
+
rtx
loongarch_const_vector_vrepli (rtx x, machine_mode mode)
{
@@ -4143,6 +4174,19 @@ loongarch_rtx_costs (rtx x, machine_mode mode, int outer_code,
}
}
+/* All CPUs prefer to avoid cross-lane operations so perform reductions
+ upper against lower halves up to LSX reg size. */
+
+machine_mode
+loongarch_split_reduction (machine_mode mode)
+{
+ if (LSX_SUPPORTED_MODE_P (mode))
+ return mode;
+
+ return mode_for_vector (as_a <scalar_mode> (GET_MODE_INNER (mode)),
+ GET_MODE_NUNITS (mode) / 2).require ();
+}
+
/* Implement targetm.vectorize.builtin_vectorization_cost. */
static int
@@ -11397,6 +11441,10 @@ loongarch_can_inline_p (tree caller, tree callee)
#define TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES \
loongarch_autovectorize_vector_modes
+#undef TARGET_VECTORIZE_SPLIT_REDUCTION
+#define TARGET_VECTORIZE_SPLIT_REDUCTION \
+ loongarch_split_reduction
+
#undef TARGET_OPTAB_SUPPORTED_P
#define TARGET_OPTAB_SUPPORTED_P loongarch_optab_supported_p
diff --git a/gcc/config/loongarch/predicates.md b/gcc/config/loongarch/predicates.md
index fd2d7b9..34cf74d 100644
--- a/gcc/config/loongarch/predicates.md
+++ b/gcc/config/loongarch/predicates.md
@@ -699,3 +699,19 @@
return true;
})
+
+;; PARALLEL for a vec_select that selects the low half
+;; elements of a vector of MODE.
+(define_special_predicate "vect_par_cnst_low_half"
+ (match_code "parallel")
+{
+ return loongarch_check_vect_par_cnst_half (op, mode, false);
+})
+
+;; PARALLEL for a vec_select that selects the high half
+;; elements of a vector of MODE.
+(define_special_predicate "vect_par_cnst_high_half"
+ (match_code "parallel")
+{
+ return loongarch_check_vect_par_cnst_half (op, mode, true);;
+})
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index fb117f5..882c082 100644
--- a/gcc/doc/extend.texi
+++ b/gcc/doc/extend.texi
@@ -6896,15 +6896,14 @@ compiler checks for @code{nocf_check} attribute mismatch and reports
a warning in case of mismatch.
@smallexample
-@{
-int foo (void) __attribute__(nocf_check);
-void (*foo1)(void) __attribute__(nocf_check);
+int foo (void) __attribute__((nocf_check));
+void (*foo1)(void) __attribute__((nocf_check));
void (*foo2)(void);
/* foo's address is assumed to be valid. */
int
foo (void)
-
+@{
/* This call site is not checked for control-flow
validity. */
(*foo1)();
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 792f3c7..bf5bcd63 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,26 @@
+2025-10-25 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114023
+ * trans-expr.cc (gfc_trans_pointer_assignment): Always set dtype
+ when remapping a pointer. For unlimited polymorphic LHS use
+ elem_len from RHS.
+ * trans-intrinsic.cc (gfc_conv_is_contiguous_expr): Extend inline
+ generated code for IS_CONTIGUOUS for pointer arguments to detect
+ when span differs from the element size.
+
+2025-10-24 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/122386
+ * dependency.cc (gfc_ref_needs_temporary_p): Revert r16-518.
+ * trans-intrinsic.cc (gfc_conv_intrinsic_transfer): Force temporary
+ for SOURCE not being a simply-contiguous array.
+
+2025-10-24 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR fortran/121452
+ * openmp.cc (resolve_omp_do): Allow CONTINUE as end statement of a
+ perfectly nested loop.
+
2025-10-21 Paul-Antoine Arras <parras@baylibre.com>
PR c/120180
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 21f256b..67b60c7 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -11344,21 +11344,33 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
int dim;
gcc_assert (remap->u.ar.dimen == expr1->rank);
+ /* Always set dtype. */
+ tree dtype = gfc_conv_descriptor_dtype (desc);
+ tmp = gfc_get_dtype (TREE_TYPE (desc));
+ gfc_add_modify (&block, dtype, tmp);
+
+ /* For unlimited polymorphic LHS use elem_len from RHS. */
+ if (UNLIMITED_POLY (expr1) && expr2->ts.type != BT_CLASS)
+ {
+ tree elem_len;
+ tmp = TYPE_SIZE_UNIT (gfc_typenode_for_spec (&expr2->ts));
+ elem_len = fold_convert (gfc_array_index_type, tmp);
+ elem_len = gfc_evaluate_now (elem_len, &block);
+ tmp = gfc_conv_descriptor_elem_len (desc);
+ gfc_add_modify (&block, tmp,
+ fold_convert (TREE_TYPE (tmp), elem_len));
+ }
+
if (rank_remap)
{
/* Do rank remapping. We already have the RHS's descriptor
converted in rse and now have to build the correct LHS
descriptor for it. */
- tree dtype, data, span;
+ tree data, span;
tree offs, stride;
tree lbound, ubound;
- /* Set dtype. */
- dtype = gfc_conv_descriptor_dtype (desc);
- tmp = gfc_get_dtype (TREE_TYPE (desc));
- gfc_add_modify (&block, dtype, tmp);
-
/* Copy data pointer. */
data = gfc_conv_descriptor_data_get (rse.expr);
gfc_conv_descriptor_data_set (&block, desc, data);
diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc
index 05017d0..89a03d8 100644
--- a/gcc/fortran/trans-intrinsic.cc
+++ b/gcc/fortran/trans-intrinsic.cc
@@ -2316,10 +2316,14 @@ gfc_conv_is_contiguous_expr (gfc_se *se, gfc_expr *arg)
int i;
tree fncall0;
gfc_array_spec *as;
+ gfc_symbol *sym = NULL;
if (arg->ts.type == BT_CLASS)
gfc_add_class_array_ref (arg);
+ if (arg->expr_type == EXPR_VARIABLE)
+ sym = arg->symtree->n.sym;
+
ss = gfc_walk_expr (arg);
gcc_assert (ss != gfc_ss_terminator);
gfc_init_se (&argse, NULL);
@@ -2342,7 +2346,7 @@ gfc_conv_is_contiguous_expr (gfc_se *se, gfc_expr *arg)
fncall0 = build_call_expr_loc (input_location,
gfor_fndecl_is_contiguous0, 1, desc);
se->expr = fncall0;
- se->expr = convert (logical_type_node, se->expr);
+ se->expr = convert (boolean_type_node, se->expr);
}
else
{
@@ -2374,6 +2378,22 @@ gfc_conv_is_contiguous_expr (gfc_se *se, gfc_expr *arg)
}
se->expr = cond;
}
+
+ /* A pointer that does not have the CONTIGUOUS attribute needs to be checked
+ if it points to an array whose span differs from the element size. */
+ if (as && sym && IS_POINTER(sym) && !sym->attr.contiguous)
+ {
+ tree span = gfc_conv_descriptor_span_get (desc);
+ tmp = fold_convert (TREE_TYPE (span),
+ gfc_conv_descriptor_elem_len (desc));
+ cond = fold_build2_loc (input_location, EQ_EXPR, boolean_type_node,
+ span, tmp);
+ se->expr = fold_build2_loc (input_location, TRUTH_ANDIF_EXPR,
+ boolean_type_node, cond,
+ convert (boolean_type_node, se->expr));
+ }
+
+ gfc_free_ss_chain (ss);
}
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index b605bf2..155c082 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,79 @@
+2025-10-24 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/122407
+ * gm2-compiler/FilterError.def (Copyright): Use correct
+ licence.
+ * gm2-compiler/FilterError.mod (Copyright): Ditto.
+ * gm2-compiler/M2Quads.mod (BuildNewProcedure): Rewrite.
+ (BuildIncProcedure): Ditto.
+ (BuildDecProcedure): Ditto.
+ (BuildInclProcedure): Ditto.
+ (BuildExclProcedure): Ditto.
+ (BuildAbsFunction): Ditto.
+ (BuildCapFunction): Ditto.
+ (BuildChrFunction): Ditto.
+ (BuildOrdFunction): Ditto.
+ (BuildIntFunction): Ditto.
+ (BuildMinFunction): Ditto.
+ (BuildMaxFunction): Ditto.
+ (BuildTruncFunction): Ditto.
+ (BuildTBitSizeFunction): Ditto.
+ (BuildTSizeFunction): Ditto.
+ (BuildSizeFunction): Ditto.
+
+2025-10-24 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/122407
+ * Make-lang.in (GM2-LIBS-BOOT-DEFS): Add BinDict.def.
+ (GM2-LIBS-BOOT-MODS): Add BinDict.mod.
+ (GM2-COMP-BOOT-DEFS): Add FilterError.def.
+ (GM2-COMP-BOOT-MODS): Add FilterError.mod.
+ (GM2-LIBS-DEFS): Add BinDict.def.
+ (GM2-LIBS-MODS): Add BinDict.mod.
+ * gm2-compiler/M2Error.def (KillError): New procedure.
+ * gm2-compiler/M2Error.mod (WriteFormat3): Reformat.
+ (NewError): Rewrite and call AddToList.
+ (AddToList): New procedure.
+ (SubFromList): Ditto.
+ (WipeReferences): Ditto.
+ (KillError): Ditto.
+ * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Return
+ caret if all token positions are identical.
+ * gm2-compiler/M2MetaError.mod (KillError): Import.
+ (FilterError): Import.
+ (FilterUnknown): New global.
+ (initErrorBlock): Initialize symcause and token.
+ (push): Capitalize comments.
+ (pop): Copy symcause to toblock if discovered.
+ (doError): Add parameter sym.
+ (defaultError): Assign token if discovered.
+ Pass NulSym to doError.
+ (updateTokSym): New procedure.
+ (chooseError): Call updateTokSym.
+ (doErrorScopeModule): Pass sym to doError.
+ (doErrorScopeForward): Ditto.
+ (doErrorScopeMod): Ditto.
+ (doErrorScopeFor): Ditto.
+ (doErrorScopeDefinition): Ditto.
+ (doErrorScopeDef): Ditto.
+ (doErrorScopeProc): Ditto.
+ (used): Pass sym[bol] to doError.
+ (op): Assign symcause when encountering
+ an error, warning or note.
+ (MetaErrorStringT1): Rewrite.
+ (MetaErrorStringT2): Ditto.
+ (MetaErrorStringT3): Ditto.
+ (MetaErrorStringT4): Ditto.
+ (isUniqueError): New procedure function.
+ (wrapErrors): Rewrite.
+ (FilterUnknown): Initialize.
+ * gm2-compiler/M2Quads.mod (BuildTSizeFunction): Add spell check
+ hint specifier.
+ * gm2-compiler/FilterError.def: New file.
+ * gm2-compiler/FilterError.mod: New file.
+ * gm2-libs/BinDict.def: New file.
+ * gm2-libs/BinDict.mod: New file.
+
2025-10-19 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/122333
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 65fa7fa..d6a2cf4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,105 @@
+2025-10-25 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/114023
+ * gfortran.dg/is_contiguous_5.f90: New test.
+
+2025-10-25 Jiahao Xu <xujiahao@loongson.cn>
+
+ * gcc.target/loongarch/lasx-reduc-1.c: New test.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ * gcc.dg/pr110405.c: New.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/114025
+ * g++.dg/pr114025.C: New.
+
+2025-10-24 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/122407
+ * gm2.dg/spell/iso/fail/badspellabs.mod: New test.
+ * gm2.dg/spell/iso/fail/badspelladr.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellcap.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellchr.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellchr2.mod: New test.
+ * gm2.dg/spell/iso/fail/badspelldec.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellexcl.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellinc.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellincl.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellnew.mod: New test.
+ * gm2.dg/spell/iso/fail/badspellsize.mod: New test.
+ * gm2.dg/spell/iso/fail/dg-spell-iso-fail.exp: New test.
+
+2025-10-24 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
+
+ PR target/122402
+ * gcc.target/aarch64/auto-init-padding-2.c: Turn off SRA.
+ * gcc.target/aarch64/auto-init-padding-4.c: Likewise.
+
+2025-10-24 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/122386
+ * gfortran.dg/transfer_array_subref_2.f90: New test.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ * gcc.dg/pr114725.c: New.
+
+2025-10-24 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/118254
+ PR tree-optimization/114331
+ * gcc.dg/pr114331.c: New.
+ * gcc.dg/pr118254.c: New.
+
+2025-10-24 Alex Coplan <alex.coplan@arm.com>
+
+ * gcc.dg/torture/vect-permute-ice.c: New test.
+
+2025-10-24 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/vect/vect-pr122406-1.c: Adjust to expect reduction
+ chain vectorization.
+ * gcc.dg/vect/vect-pr122406-2.c: Likewise.
+
+2025-10-24 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/122406
+ * gcc.dg/vect/vect-pr122406-1.c: New testcase.
+ * gcc.dg/vect/vect-pr122406-2.c: Likewise.
+
+2025-10-24 Paul-Antoine Arras <parras@baylibre.com>
+
+ PR fortran/121452
+ * c-c++-common/gomp/pr121452-1.c: New test.
+ * c-c++-common/gomp/pr121452-2.c: New test.
+ * gfortran.dg/gomp/pr121452-1.f90: New test.
+ * gfortran.dg/gomp/pr121452-2.f90: New test.
+ * gfortran.dg/gomp/pr121452-3.f90: New test.
+
+2025-10-24 H.J. Lu <hjl.tools@gmail.com>
+
+ PR target/122323
+ * gcc.target/i386/builtin-fabs-2.c: Also scan (%edi)for x32.
+
+2025-10-24 Pengfei Li <Pengfei.Li2@arm.com>
+
+ * gcc.dg/fold-vecperm-1.c: New test.
+
+2025-10-24 Olivier Hainque <hainque@adacore.com>
+
+ * lib/target-supports.exp (check_weak_available):
+ Return 1 for VxWorks7.
+
+2025-10-24 Joseph Myers <josmyers@redhat.com>
+
+ * gcc.dg/c23-static-assert-5.c, gcc.dg/c23-static-assert-6.c,
+ gcc.dg/c23-static-assert-7.c, gcc.dg/c23-static-assert-8.c,
+ gcc.dg/c2y-static-assert-2.c, gcc.dg/c2y-static-assert-3.c,
+ gcc.dg/c2y-static-assert-4.c: New tests.
+
2025-10-23 Robert Dubner <rdubner@symas.com>
* cobol.dg/group2/Length_overflow__2_.out: Updated test result.
diff --git a/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c b/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
index 90c5ac9..da4b7aa 100644
--- a/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
+++ b/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c
@@ -7,7 +7,7 @@
/*
** foo:
-** movi d([0-9]+), #0
+** movi? [vdz]([0-9]+)\.?b?, #0
** movprfx z0\.b, p0/z, z0\.b
** usqadd z0\.b, p0/m, z0\.b, z\1\.b
** ret
@@ -19,7 +19,7 @@ svuint8_t foo (svbool_t pg, svuint8_t op1)
/*
** bar:
-** movi d([0-9]+), #0
+** movi? [vdz]([0-9]+)\.?b?, #0
** movprfx z0\.b, p0/z, z0\.b
** suqadd z0\.b, p0/m, z0\.b, z\1\.b
** ret
diff --git a/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c b/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c
new file mode 100644
index 0000000..e449259
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/lasx-reduc-1.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -funsafe-math-optimizations -mlasx -fno-unroll-loops -fdump-tree-optimized" } */
+/* { dg-final { scan-tree-dump-times "\.REDUC_PLUS" 4 "optimized" } } */
+
+#define DEFINE_SUM_FUNCTION(T, FUNC_NAME, SIZE) \
+T FUNC_NAME(const T arr[]) { \
+ arr = __builtin_assume_aligned(arr, 64); \
+ T sum = 0; \
+ for (int i = 0; i < SIZE; i++) \
+ sum += arr[i]; \
+ return sum; \
+}
+
+DEFINE_SUM_FUNCTION (int, sum_int_1040, 1028)
+DEFINE_SUM_FUNCTION (float, sum_float_1040, 1028)
+DEFINE_SUM_FUNCTION (long, sum_long_1040, 1026)
+DEFINE_SUM_FUNCTION (double, sum_double_1040, 1026)
diff --git a/gcc/testsuite/gfortran.dg/is_contiguous_5.f90 b/gcc/testsuite/gfortran.dg/is_contiguous_5.f90
new file mode 100644
index 0000000..091e43b5
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/is_contiguous_5.f90
@@ -0,0 +1,126 @@
+! { dg-do run }
+! PR fortran/114023 - IS_CONTIGUOUS and pointers to non-contiguous targets
+!
+! Based on testcase by Federico Perini
+
+program main
+ implicit none
+ complex, parameter :: cvals(*) = [(1,-1),(2,-2),(3,-3)]
+ complex , target :: cref(size(cvals)) = cvals ! Reference
+ complex, allocatable, target :: carr(:) ! Test
+
+ type cx
+ real :: re, im
+ end type cx
+ type(cx), parameter :: tvals(*) = [cx(1,-1),cx(2,-2),cx(3,-3)]
+ real, parameter :: expect(*) = tvals% re
+ type(cx) , target :: tref(size(cvals)) = tvals ! Reference
+ type(cx), allocatable, target :: tarr(:)
+
+ real, pointer :: rr1(:), rr2(:), rr3(:), rr4(:)
+ class(*), pointer :: cp1(:), cp2(:), cp3(:), cp4(:)
+
+ carr = cvals
+ tarr = tvals
+
+ if (any (expect /= [1,2,3])) error stop 90
+
+ ! REAL pointer to non-contiguous effective target
+ rr1(1:3) => cref%re
+ rr2 => cref%re
+ rr3(1:3) => carr%re
+ rr4 => carr%re
+
+ if (is_contiguous (rr1)) stop 1
+ if (my_contiguous_real (rr1)) stop 2
+ if (is_contiguous (cref(1:3)%re)) stop 3
+! if (my_contiguous_real (cref(1:3)%re)) stop 4 ! pr122397
+
+ if (is_contiguous (rr3)) stop 6
+ if (my_contiguous_real (rr3)) stop 7
+ if (is_contiguous (carr(1:3)%re)) stop 8
+! if (my_contiguous_real (carr(1:3)%re)) stop 9
+
+ if (is_contiguous (rr2)) stop 11
+ if (my_contiguous_real (rr2)) stop 12
+ if (is_contiguous (cref%re)) stop 13
+! if (my_contiguous_real (cref%re)) stop 14
+
+ if (is_contiguous (rr4)) stop 16
+ if (my_contiguous_real (rr4)) stop 17
+ if (is_contiguous (carr%re)) stop 18
+! if (my_contiguous_real (carr%re)) stop 19
+
+ rr1(1:3) => tref%re
+ rr2 => tref%re
+ rr3(1:3) => tarr%re
+ rr4 => tarr%re
+
+ if (is_contiguous (rr1)) stop 21
+ if (my_contiguous_real (rr1)) stop 22
+ if (is_contiguous (tref(1:3)%re)) stop 23
+! if (my_contiguous_real (tref(1:3)%re)) stop 24
+
+ if (is_contiguous (rr3)) stop 26
+ if (my_contiguous_real (rr3)) stop 27
+ if (is_contiguous (tarr(1:3)%re)) stop 28
+! if (my_contiguous_real (tarr(1:3)%re)) stop 29
+
+ if (is_contiguous (rr2)) stop 31
+ if (my_contiguous_real (rr2)) stop 32
+ if (is_contiguous (tref%re)) stop 33
+! if (my_contiguous_real (tref%re)) stop 34
+
+ if (is_contiguous (rr4)) stop 36
+ if (my_contiguous_real (rr4)) stop 37
+ if (is_contiguous (tarr%re)) stop 38
+! if (my_contiguous_real (tarr%re)) stop 39
+
+ ! Unlimited polymorphic pointer to non-contiguous effective target
+ cp1(1:3) => cref%re
+ cp2 => cref%re
+ cp3(1:3) => carr%re
+ cp4 => carr%re
+
+ if (is_contiguous (cp1)) stop 41
+ if (my_contiguous_poly (cp1)) stop 42
+ if (is_contiguous (cp2)) stop 43
+ if (my_contiguous_poly (cp2)) stop 44
+ if (is_contiguous (cp3)) stop 45
+ if (my_contiguous_poly (cp3)) stop 46
+ if (is_contiguous (cp4)) stop 47
+ if (my_contiguous_poly (cp4)) stop 48
+
+ cp1(1:3) => tref%re
+ cp2 => tref%re
+ cp3(1:3) => tarr%re
+ cp4 => tarr%re
+
+ if (is_contiguous (cp1)) stop 51
+ if (my_contiguous_poly (cp1)) stop 52
+ if (is_contiguous (cp2)) stop 53
+ if (my_contiguous_poly (cp2)) stop 54
+ if (is_contiguous (cp3)) stop 55
+ if (my_contiguous_poly (cp3)) stop 56
+ if (is_contiguous (cp4)) stop 57
+ if (my_contiguous_poly (cp4)) stop 58
+
+ deallocate (carr, tarr)
+contains
+ pure logical function my_contiguous_real (x) result (res)
+ real, pointer, intent(in) :: x(:)
+ res = is_contiguous (x)
+ if (any (x /= expect)) error stop 97
+ end function my_contiguous_real
+
+ pure logical function my_contiguous_poly (x) result (res)
+ class(*), pointer, intent(in) :: x(:)
+ res = is_contiguous (x)
+ select type (x)
+ type is (real)
+ if (any (x /= expect)) error stop 98
+ class default
+ error stop 99
+ end select
+ end function my_contiguous_poly
+end
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 4c4e14b..3973653 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,8 @@
+2025-10-25 Olivier Hainque <hainque@adacore.com>
+
+ * config/t-vxworks (LIBGCC2_INCLUDES): Replace $(VSB_DIR)
+ by sysroot references.
+
2025-10-20 Olivier Hainque <hainque@adacore.com>
Ashley Gay <gay@adacore.com>
diff --git a/libgcc/config/t-vxworks b/libgcc/config/t-vxworks
index 42db6a8..ca0d0cf 100644
--- a/libgcc/config/t-vxworks
+++ b/libgcc/config/t-vxworks
@@ -32,7 +32,7 @@ LIB2FUNCS_EXCLUDE += _clear_cache
LIBGCC2_INCLUDES = -nostdinc -include vxworks-predef.h -I. \
$(if $(findstring vxworks7, $(target_noncanonical)), \
- -I$(VSB_DIR)/h -I$(VSB_DIR)/share/h -I=/system -I=/public, \
+ -I=/../../h -I=/../../share/h -I=/system -I=/public, \
-I=/ -I=/wrn/coreip) \
-isystem $(MULTIBUILDTOP)../../gcc/include-fixed$(MULTISUBDIR) \
-isystem $(MULTIBUILDTOP)../../gcc/include
diff --git a/libgcobol/ChangeLog b/libgcobol/ChangeLog
index 1858e80..67b25fe 100644
--- a/libgcobol/ChangeLog
+++ b/libgcobol/ChangeLog
@@ -1,3 +1,8 @@
+2025-10-25 Sam James <sam@gentoo.org>
+
+ PR cobol/122398
+ * xmlparse.cc (__gg__xml_parse): Make 'msg' const.
+
2025-10-23 Robert Dubner <rdubner@symas.com>
* charmaps.cc: Encoding.
diff --git a/libgcobol/xmlparse.cc b/libgcobol/xmlparse.cc
index 69849e3..57d370a 100644
--- a/libgcobol/xmlparse.cc
+++ b/libgcobol/xmlparse.cc
@@ -582,7 +582,7 @@ __gg__xml_parse( const cblc_field_t *input_field,
int erc = xmlSAXUserParseMemory(&handlers, nullptr, input, len);
if( erc ) {
- xmlErrorPtr msg = xmlCtxtGetLastError(nullptr);
+ const xmlError* msg = xmlCtxtGetLastError(nullptr);
fprintf(stderr, "XML PARSE: error: line %d: %s (%d: %d.%d.%d)\n",
msg->line, msg->message, erc, msg->domain, msg->level, msg->code);
}
diff --git a/libgm2/ChangeLog b/libgm2/ChangeLog
index 5e3460f..2be94fa 100644
--- a/libgm2/ChangeLog
+++ b/libgm2/ChangeLog
@@ -1,3 +1,10 @@
+2025-10-24 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/122407
+ * libm2pim/Makefile.am (M2MODS): Add BinDict.mod.
+ (M2DEFS): Add BinDict.def.
+ * libm2pim/Makefile.in: Regenerate.
+
2025-10-07 Jonathan Wakely <jwakely@redhat.com>
* configure.host: Fix spelling in comment.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 2d49d20..04bba2c 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,20 @@
+2025-10-24 Eric Pimentel Aguiar <eric.pimentela@gmail.com>
+
+ * src/c++23/std.cc.in (std::strided_slice, std::full_extent_t)
+ (std::full_extent, std::submdspan_mapping_result): Add std
+ qualification.
+
+2025-10-24 Tomasz KamiƄski <tkaminsk@redhat.com>
+
+ PR libstdc++/122022
+ * include/std/functional (_Bind_fn_t): Use forwarding reference as
+ paremeter.
+ (std::not_fn<f>): Use forwarding reference as lambda parameter.
+ * testsuite/20_util/function_objects/bind_back/nttp.cc: Rework tests.
+ * testsuite/20_util/function_objects/bind_front/nttp.cc: Likewise.
+ * testsuite/20_util/function_objects/not_fn/nttp.cc: Add test for
+ argument forwarding.
+
2025-10-22 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/122224