aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/ChangeLog4
-rw-r--r--gcc/ChangeLog69
-rw-r--r--gcc/DATESTAMP2
-rw-r--r--gcc/c-family/ChangeLog5
-rw-r--r--gcc/cp/ChangeLog15
-rw-r--r--gcc/doc/sourcebuild.texi6
-rw-r--r--gcc/fortran/ChangeLog13
-rw-r--r--gcc/fortran/trans-decl.cc6
-rw-r--r--gcc/fortran/trans-expr.cc10
-rw-r--r--gcc/gimple.h6
-rw-r--r--gcc/match.pd31
-rw-r--r--gcc/simplify-rtx.cc11
-rw-r--r--gcc/testsuite/ChangeLog165
-rw-r--r--gcc/testsuite/c-c++-common/musttail14.c2
-rw-r--r--gcc/testsuite/c-c++-common/musttail22.c2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr83549.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr83667.C1
-rw-r--r--gcc/testsuite/g++.dg/musttail8.C2
-rw-r--r--gcc/testsuite/g++.dg/musttail9.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/musttail3.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/musttail4.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/musttail5.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr119613.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr81812.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/thunk3.C3
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_52.f901
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_57.f9036
-rw-r--r--gcc/testsuite/lib/target-supports.exp43
-rw-r--r--libgcc/ChangeLog8
-rw-r--r--libgomp/ChangeLog39
-rw-r--r--libstdc++-v3/ChangeLog140
-rw-r--r--libstdc++-v3/include/bits/move.h2
-rw-r--r--libstdc++-v3/include/bits/ptr_traits.h6
-rw-r--r--libstdc++-v3/src/c++11/Makefile.am8
-rw-r--r--libstdc++-v3/src/c++11/Makefile.in8
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc3
-rw-r--r--maintainer-scripts/ChangeLog5
37 files changed, 623 insertions, 41 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index e7a4cab..279158f 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,7 @@
+2025-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ * gennews (files): Add files for GCC 15.
+
2025-04-17 Jakub Jelinek <jakub@redhat.com>
* gcc-changelog/git_update_version.py (active_refs): Add
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8d412b6..3ab7f56 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,72 @@
+2025-04-25 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * doc/sourcebuild.texi: Document variadic_mi_thunk effective
+ target check.
+
+2025-04-25 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * doc/sourcebuild.texi: Document effective target
+ using_sjlj_exceptions.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+
+ * match.pd: Move `(cmp (cond @0 @1 @2) @3)` simplifcation after
+ the bool comparison simplifications.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+
+ * gimple.h (gimple_cond_make_false): Fix comment.
+ (gimple_cond_make_true): Likewise.
+ (gimple_cond_true_p): Fix spello for statement in comment.
+
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ * common.opt: Add ABI v21.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+
+ * ipa-icf.cc (sem_function::sem_function): Remove
+ the obstack argument version one.
+ (sem_variable::sem_variable): Likewise.
+ * ipa-icf.h (sem_function): Remove ctor for
+ obstack argument only one.
+ (sem_variable): Likewise.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+
+ * ipa-icf.cc (sem_function::init): Remove assignment of node from itself.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+
+ PR tree-optimization/119811
+ * tree-ssa-phiopt.cc: Remove calls.h include.
+
+2025-04-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ PR rtl-optimization/116479
+ * modulo-sched.cc (doloop_register_get): Reject conditions with
+ decrements that are not 1.
+
+2025-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/119873
+ * config/s390/s390.cc (s390_call_saved_register_used): Don't return
+ true if default definition of PARM_DECL SSA_NAME of the same register
+ is passed in call saved register in the PARALLEL case either.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+ Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/119737
+ * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Properly
+ switch sections.
+
+2025-04-25 Yuriy Kolerov <Yuriy.Kolerov@synopsys.com>
+
+ PR target/119122
+ * common/config/riscv/riscv-common.cc (riscv_implied_info): Add a rule
+ for Zca to C implication.
+
2025-04-24 Jakub Jelinek <jakub@redhat.com>
Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index c872ff4..61358eb 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20250425
+20250426
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 2d8ef50..732b2c9 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,8 @@
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ * c-opts.cc (c_common_post_options): Bump default ABI to 21
+ and compat ABI to 18.
+
2025-04-06 Sandra Loosemore <sloosemore@baylibre.com>
* c.opt.urls: Regenerate.
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index cd128e2..d092553 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,18 @@
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/119764
+ PR c++/87185
+ * lambda.cc (insert_capture_proxy): Handle noexcept lambda.
+ (prune_lambda_captures): Likewise, in ABI v21.
+
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ * cp-tree.h (struct tinst_level): Add had_errors bit.
+ * pt.cc (push_tinst_level_loc): Clear it.
+ (pop_tinst_level): Set it.
+ (reopen_tinst_level): Check it.
+ (instantiate_pending_templates): Call limit_bad_template_recursion.
+
2025-04-24 Jason Merrill <jason@redhat.com>
PR c++/116954
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index c29cd3f..65eeecc 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2957,6 +2957,9 @@ Target supports @code{sysconf}.
@item trampolines
Target supports trampolines.
+@item variadic_mi_thunk
+Target supports C++ virtual variadic function calls with multiple inheritance.
+
@item two_plus_gigs
Target supports linking programs with 2+GiB of data.
@@ -3012,6 +3015,9 @@ Note that this is orthogonal to effective-target @code{exceptions_enabled}.
Testing configuration has exception handling enabled.
Note that this is orthogonal to effective-target @code{exceptions}.
+@item using_sjlj_exceptions
+Target uses @code{setjmp} and @code{longjmp} for implementing exceptions.
+
@item fgraphite
Target supports Graphite optimizations.
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 7c6a415..e6ecc8d 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,16 @@
+2025-04-25 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/102900
+ * trans-decl.cc (gfc_generate_function_code): Use sym->result
+ when generating fake result decl for functions returning
+ allocatable or pointer results.
+ * trans-expr.cc (gfc_conv_procedure_call): When checking the
+ pointer status of an actual argument passed to a non-allocatable,
+ non-pointer dummy which is of type CLASS, do not check the
+ class container of the actual if it is just a procedure pointer.
+ (gfc_trans_pointer_assignment): Fix treatment of assignment to
+ NULL of a procedure pointer.
+
2025-04-23 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/119200
diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc
index ee48a82..43bd7be 100644
--- a/gcc/fortran/trans-decl.cc
+++ b/gcc/fortran/trans-decl.cc
@@ -8079,13 +8079,13 @@ gfc_generate_function_code (gfc_namespace * ns)
|| sym->result->ts.u.derived->attr.alloc_comp
|| sym->result->ts.u.derived->attr.pointer_comp))
|| (sym->result->ts.type == BT_CLASS
- && (CLASS_DATA (sym)->attr.allocatable
- || CLASS_DATA (sym)->attr.class_pointer
+ && (CLASS_DATA (sym->result)->attr.allocatable
+ || CLASS_DATA (sym->result)->attr.class_pointer
|| CLASS_DATA (sym->result)->attr.alloc_comp
|| CLASS_DATA (sym->result)->attr.pointer_comp))))
{
artificial_result_decl = true;
- result = gfc_get_fake_result_decl (sym, 0);
+ result = gfc_get_fake_result_decl (sym->result, 0);
}
if (result != NULL_TREE && sym->attr.function && !sym->attr.pointer)
diff --git a/gcc/fortran/trans-expr.cc b/gcc/fortran/trans-expr.cc
index 19e5669b..8d9448e 100644
--- a/gcc/fortran/trans-expr.cc
+++ b/gcc/fortran/trans-expr.cc
@@ -8145,7 +8145,7 @@ gfc_conv_procedure_call (gfc_se * se, gfc_symbol * sym,
goto end_pointer_check;
tmp = parmse.expr;
- if (fsym && fsym->ts.type == BT_CLASS)
+ if (fsym && fsym->ts.type == BT_CLASS && !attr.proc_pointer)
{
if (POINTER_TYPE_P (TREE_TYPE (tmp)))
tmp = build_fold_indirect_ref_loc (input_location, tmp);
@@ -10912,9 +10912,11 @@ gfc_trans_pointer_assignment (gfc_expr * expr1, gfc_expr * expr2)
gfc_init_se (&lse, NULL);
/* Usually testing whether this is not a proc pointer assignment. */
- non_proc_ptr_assign = !(gfc_expr_attr (expr1).proc_pointer
- && expr2->expr_type == EXPR_VARIABLE
- && expr2->symtree->n.sym->attr.flavor == FL_PROCEDURE);
+ non_proc_ptr_assign
+ = !(gfc_expr_attr (expr1).proc_pointer
+ && ((expr2->expr_type == EXPR_VARIABLE
+ && expr2->symtree->n.sym->attr.flavor == FL_PROCEDURE)
+ || expr2->expr_type == EXPR_NULL));
/* Check whether the expression is a scalar or not; we cannot use
expr1->rank as it can be nonzero for proc pointers. */
diff --git a/gcc/gimple.h b/gcc/gimple.h
index 112e5ae..7e3086f 100644
--- a/gcc/gimple.h
+++ b/gcc/gimple.h
@@ -3829,7 +3829,7 @@ gimple_cond_false_label (const gcond *gs)
}
-/* Set the conditional COND_STMT to be of the form 'if (1 == 0)'. */
+/* Set the conditional COND_STMT to be of the form 'if (0 != 0)'. */
inline void
gimple_cond_make_false (gcond *gs)
@@ -3840,7 +3840,7 @@ gimple_cond_make_false (gcond *gs)
}
-/* Set the conditional COND_STMT to be of the form 'if (1 == 1)'. */
+/* Set the conditional COND_STMT to be of the form 'if (1 != 0)'. */
inline void
gimple_cond_make_true (gcond *gs)
@@ -3850,7 +3850,7 @@ gimple_cond_make_true (gcond *gs)
gs->subcode = NE_EXPR;
}
-/* Check if conditional statemente GS is of the form 'if (1 == 1)',
+/* Check if conditional statement GS is of the form 'if (1 == 1)',
'if (0 == 0)', 'if (1 != 0)' or 'if (0 != 1)' */
inline bool
diff --git a/gcc/match.pd b/gcc/match.pd
index ba036e5..0fe90a6e 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -7759,20 +7759,6 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(cmp (bit_and@2 @0 integer_pow2p@1) @1)
(icmp @2 { build_zero_cst (TREE_TYPE (@0)); })))
-#if GIMPLE
-/* From fold_binary_op_with_conditional_arg handle the case of
- rewriting (a ? b : c) > d to a ? (b > d) : (c > d) when the
- compares simplify. */
-(for cmp (simple_comparison)
- (simplify
- (cmp:c (cond @0 @1 @2) @3)
- /* Do not move possibly trapping operations into the conditional as this
- pessimizes code and causes gimplification issues when applied late. */
- (if (!FLOAT_TYPE_P (TREE_TYPE (@3))
- || !operation_could_trap_p (cmp, true, false, @3))
- (cond @0 (cmp! @1 @3) (cmp! @2 @3)))))
-#endif
-
(for cmp (ge lt)
/* x < 0 ? ~y : y into (x >> (prec-1)) ^ y. */
/* x >= 0 ? ~y : y into ~((x >> (prec-1)) ^ y). */
@@ -8119,6 +8105,23 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
replace if (x == 0) with tem = ~x; if (tem != 0) which is
clearly less optimal and which we'll transform again in forwprop. */
+#if GIMPLE
+/* From fold_binary_op_with_conditional_arg handle the case of
+ rewriting (a ? b : c) > d to a ? (b > d) : (c > d) when the
+ compares simplify.
+ This should be after the boolean comparison simplification so
+ that it can remove the outer comparison before appling it to
+ the inner condtional operands. */
+(for cmp (simple_comparison)
+ (simplify
+ (cmp:c (cond @0 @1 @2) @3)
+ /* Do not move possibly trapping operations into the conditional as this
+ pessimizes code and causes gimplification issues when applied late. */
+ (if (!FLOAT_TYPE_P (TREE_TYPE (@3))
+ || !operation_could_trap_p (cmp, true, false, @3))
+ (cond @0 (cmp! @1 @3) (cmp! @2 @3)))))
+#endif
+
/* Transform comparisons of the form (X & Y) CMP 0 to X CMP2 Z
where ~Y + 1 == pow2 and Z = ~Y. */
(for cst (VECTOR_CST INTEGER_CST)
diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc
index 88d31a7..06b52ca 100644
--- a/gcc/simplify-rtx.cc
+++ b/gcc/simplify-rtx.cc
@@ -1709,6 +1709,17 @@ simplify_context::simplify_unary_operation_1 (rtx_code code, machine_mode mode,
if (GET_MODE (op) == mode)
return op;
+ /* (zero_extend:SI (and:QI X (const))) -> (and:SI (lowpart:SI X) const)
+ where const does not sign bit set. */
+ if (GET_CODE (op) == AND
+ && CONST_INT_P (XEXP (op, 1))
+ && INTVAL (XEXP (op, 1)) > 0)
+ {
+ rtx tem = rtl_hooks.gen_lowpart_no_emit (mode, XEXP (op, 0));
+ if (tem)
+ return simplify_gen_binary (AND, mode, tem, XEXP (op, 1));
+ }
+
/* Check for a zero extension of a subreg of a promoted
variable, where the promotion is zero-extended, and the
target mode is the same as the variable's promotion. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 47666a9..9896f7f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,168 @@
+2025-04-25 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * g++.dg/ipa/pr83549.C: Require effective target
+ variadic_mi_thunk.
+ * g++.dg/ipa/pr83667.C: Ditto.
+ * g++.dg/torture/pr81812.C: Ditto.
+ * g++.old-deja/g++.jason/thunk3.C: Ditto.
+ * lib/target-supports.exp
+ (check_effective_target_variadic_mi_thunk): New function.
+
+2025-04-25 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * c-c++-common/musttail14.c: Disable test if effective target
+ using_sjlj_exceptions.
+ * c-c++-common/musttail22.c: Ditto.
+ * g++.dg/musttail8.C: Ditto.
+ * g++.dg/musttail9.C: Ditto.
+ * g++.dg/opt/musttail3.C: Ditto.
+ * g++.dg/opt/musttail4.C: Ditto.
+ * g++.dg/opt/musttail5.C: Ditto.
+ * g++.dg/opt/pr119613.C: Ditto.
+ * lib/target-supports.exp
+ (check_effective_target_using_sjlj_exceptions): New check.
+
+2025-04-25 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/102900
+ * gfortran.dg/proc_ptr_52.f90: Add -fcheck=pointer to options.
+ * gfortran.dg/proc_ptr_57.f90: New test.
+
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/119764
+ PR c++/87185
+ * g++.dg/cpp0x/lambda/lambda-noexcept1.C: New test.
+
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/abi/macro0.C: Update for -fabi-version=21.
+
+2025-04-25 Robert Dubner <rdubner@symas.com>
+
+ * cobol.dg/group2/88_level_with_FALSE_IS_clause.cob: New testcase.
+ * cobol.dg/group2/88_level_with_FILLER.cob: Likewise.
+ * cobol.dg/group2/88_level_with_THRU.cob: Likewise.
+ * cobol.dg/group2/ADD_CORRESPONDING.cob: Likewise.
+ * cobol.dg/group2/ADD_SUBTRACT_CORR_mixed_fix___float.cob: Likewise.
+ * cobol.dg/group2/ALPHABETIC-LOWER_test.cob: Likewise.
+ * cobol.dg/group2/ALPHABETIC_test.cob: Likewise.
+ * cobol.dg/group2/ALPHABETIC-UPPER_test.cob: Likewise.
+ * cobol.dg/group2/BLANK_WHEN_ZERO.cob: Likewise.
+ * cobol.dg/group2/Check_for_equality_of_COMP-1___COMP-2.cob: Likewise.
+ * cobol.dg/group2/Compare_COMP-2_with_floating-point_literal.cob: Likewise.
+ * cobol.dg/group2/Contained_program_visibility__3_.cob: Likewise.
+ * cobol.dg/group2/Contained_program_visibility__4_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__1_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__2_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__3_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__4_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__5_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__6_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__7_.cob: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__8_.cob: Likewise.
+ * cobol.dg/group2/debugging_lines__not_active_.cob: Likewise.
+ * cobol.dg/group2/debugging_lines__WITH_DEBUGGING_MODE_.cob: Likewise.
+ * cobol.dg/group2/DEBUG_Line.cob: Likewise.
+ * cobol.dg/group2/DISPLAY_and_assignment_NumericDisplay.cob: Likewise.
+ * cobol.dg/group2/DISPLAY_data_items_with_MOVE_statement.cob: Likewise.
+ * cobol.dg/group2/DISPLAY_data_items_with_VALUE_clause.cob: Likewise.
+ * cobol.dg/group2/DISPLAY_literals__DECIMAL-POINT_is_COMMA.cob: Likewise.
+ * cobol.dg/group2/GLOBAL_at_lower_level.cob: Likewise.
+ * cobol.dg/group2/GLOBAL_at_same_level.cob: Likewise.
+ * cobol.dg/group2/GLOBAL_FD__1_.cob: Likewise.
+ * cobol.dg/group2/GLOBAL_FD__2_.cob: Likewise.
+ * cobol.dg/group2/GLOBAL_FD__3_.cob: Likewise.
+ * cobol.dg/group2/GLOBAL_FD__4_.cob: Likewise.
+ * cobol.dg/group2/Hexadecimal_literal.cob: Likewise.
+ * cobol.dg/group2/integer_arithmetic_on_floating-point_var.cob: Likewise.
+ * cobol.dg/group2/MULTIPLY_BY_literal_in_INITIAL_program.cob: Likewise.
+ * cobol.dg/group2/Named_conditionals_-_fixed__float__and_alphabetic.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__1_.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__2_.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__3_.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__4_.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__5_.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__7_.cob: Likewise.
+ * cobol.dg/group2/Numeric_operations__8_.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_AWAY-FROM-ZERO.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_NEAREST-AWAY-FROM-ZERO.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_NEAREST-EVEN.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_NEAREST-TOWARD-ZERO.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_TOWARD-GREATER.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_TOWARD-LESSER.cob: Likewise.
+ * cobol.dg/group2/ROUNDED_TRUNCATION.cob: Likewise.
+ * cobol.dg/group2/ROUNDING_omnibus_Floating-Point_from_COMPUTE.cob: Likewise.
+ * cobol.dg/group2/ROUNDING_omnibus_NumericDisplay_from_COMPUTE.cob: Likewise.
+ * cobol.dg/group2/Separate_sign_positions__1_.cob: Likewise.
+ * cobol.dg/group2/Separate_sign_positions__2_.cob: Likewise.
+ * cobol.dg/group2/Simple_p-scaling.cob: Likewise.
+ * cobol.dg/group2/Simple_TYPEDEF.cob: Likewise.
+ * cobol.dg/group2/ADD_SUBTRACT_CORR_mixed_fix___float.out: New known-good result.
+ * cobol.dg/group2/BLANK_WHEN_ZERO.out: Likewise.
+ * cobol.dg/group2/Contained_program_visibility__4_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__1_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__2_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__3_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__4_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__5_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__6_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__7_.out: Likewise.
+ * cobol.dg/group2/Context_sensitive_words__8_.out: Likewise.
+ * cobol.dg/group2/debugging_lines__not_active_.out: Likewise.
+ * cobol.dg/group2/debugging_lines__WITH_DEBUGGING_MODE_.out: Likewise.
+ * cobol.dg/group2/DEBUG_Line.out: Likewise.
+ * cobol.dg/group2/DISPLAY_and_assignment_NumericDisplay.out: Likewise.
+ * cobol.dg/group2/DISPLAY_data_items_with_MOVE_statement.out: Likewise.
+ * cobol.dg/group2/DISPLAY_data_items_with_VALUE_clause.out: Likewise.
+ * cobol.dg/group2/DISPLAY_literals__DECIMAL-POINT_is_COMMA.out: Likewise.
+ * cobol.dg/group2/GLOBAL_at_lower_level.out: Likewise.
+ * cobol.dg/group2/GLOBAL_at_same_level.out: Likewise.
+ * cobol.dg/group2/Hexadecimal_literal.out: Likewise.
+ * cobol.dg/group2/Named_conditionals_-_fixed__float__and_alphabetic.out: Likewise.
+ * cobol.dg/group2/ROUNDED_AWAY-FROM-ZERO.out: Likewise.
+ * cobol.dg/group2/ROUNDED_NEAREST-AWAY-FROM-ZERO.out: Likewise.
+ * cobol.dg/group2/ROUNDED_NEAREST-EVEN.out: Likewise.
+ * cobol.dg/group2/ROUNDED_NEAREST-TOWARD-ZERO.out: Likewise.
+ * cobol.dg/group2/ROUNDED_TOWARD-GREATER.out: Likewise.
+ * cobol.dg/group2/ROUNDED_TOWARD-LESSER.out: Likewise.
+ * cobol.dg/group2/ROUNDED_TRUNCATION.out: Likewise.
+ * cobol.dg/group2/ROUNDING_omnibus_Floating-Point_from_COMPUTE.out: Likewise.
+ * cobol.dg/group2/ROUNDING_omnibus_NumericDisplay_from_COMPUTE.out: Likewise.
+ * cobol.dg/group2/Separate_sign_positions__1_.out: Likewise.
+ * cobol.dg/group2/Separate_sign_positions__2_.out: Likewise.
+ * cobol.dg/group2/Simple_p-scaling.out: Likewise.
+
+2025-04-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
+
+ * gcc.dg/pr116479.c: New test.
+
+2025-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/119873
+ * gcc.target/s390/pr119873-5.c: New test.
+
+2025-04-25 Jason Merrill <jason@redhat.com>
+
+ * g++.dg/template/recurse5.C: New test.
+
+2025-04-25 Yuriy Kolerov <Yuriy.Kolerov@synopsys.com>
+
+ PR target/119122
+ * gcc.target/riscv/arch-25.c: Fix dg-error expectation.
+ * gcc.target/riscv/attribute-c-1.c: New test.
+ * gcc.target/riscv/attribute-c-2.c: New test.
+ * gcc.target/riscv/attribute-c-3.c: New test.
+ * gcc.target/riscv/attribute-c-4.c: New test.
+ * gcc.target/riscv/attribute-c-5.c: New test.
+ * gcc.target/riscv/attribute-c-6.c: New test.
+ * gcc.target/riscv/attribute-c-7.c: New test.
+ * gcc.target/riscv/attribute-c-8.c: New test.
+ * gcc.target/riscv/attribute-zce-1.c: Update Zce tests.
+ * gcc.target/riscv/attribute-zce-2.c: Likewise.
+ * gcc.target/riscv/attribute-zce-3.c: Likewise
+ * gcc.target/riscv/attribute-zce-4.c: Likewise.
+
2025-04-24 Jakub Jelinek <jakub@redhat.com>
Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
diff --git a/gcc/testsuite/c-c++-common/musttail14.c b/gcc/testsuite/c-c++-common/musttail14.c
index 56a52b8..5bda742 100644
--- a/gcc/testsuite/c-c++-common/musttail14.c
+++ b/gcc/testsuite/c-c++-common/musttail14.c
@@ -1,5 +1,5 @@
/* PR tree-optimization/118430 */
-/* { dg-do compile { target musttail } } */
+/* { dg-do compile { target { musttail && { ! using_sjlj_exceptions } } } } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times " \[^\n\r]* = bar \\\(\[^\n\r]*\\\); \\\[tail call\\\] \\\[must tail call\\\]" 1 "optimized" } } */
/* { dg-final { scan-tree-dump-times " \[^\n\r]* = freddy \\\(\[^\n\r]*\\\); \\\[tail call\\\] \\\[must tail call\\\]" 1 "optimized" } } */
diff --git a/gcc/testsuite/c-c++-common/musttail22.c b/gcc/testsuite/c-c++-common/musttail22.c
index eb81249..7dc0f19 100644
--- a/gcc/testsuite/c-c++-common/musttail22.c
+++ b/gcc/testsuite/c-c++-common/musttail22.c
@@ -1,5 +1,5 @@
/* PR tree-optimization/118430 */
-/* { dg-do compile { target musttail } } */
+/* { dg-do compile { target { musttail && { ! using_sjlj_exceptions } } } } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
/* { dg-final { scan-tree-dump-times " \[^\n\r]* = bar \\\(\[^\n\r]*\\\); \\\[tail call\\\] \\\[must tail call\\\]" 1 "optimized" } } */
/* { dg-final { scan-tree-dump-times " \[^\n\r]* = freddy \\\(\[^\n\r]*\\\); \\\[tail call\\\] \\\[must tail call\\\]" 1 "optimized" } } */
diff --git a/gcc/testsuite/g++.dg/ipa/pr83549.C b/gcc/testsuite/g++.dg/ipa/pr83549.C
index 90cf8fe..3b4547b 100644
--- a/gcc/testsuite/g++.dg/ipa/pr83549.C
+++ b/gcc/testsuite/g++.dg/ipa/pr83549.C
@@ -1,5 +1,6 @@
// PR ipa/83549
// { dg-do compile }
+// { dg-require-effective-target variadic_mi_thunk }
// { dg-options "-O2" }
struct A { virtual ~A (); };
diff --git a/gcc/testsuite/g++.dg/ipa/pr83667.C b/gcc/testsuite/g++.dg/ipa/pr83667.C
index a8a5a5a..ec91a2e 100644
--- a/gcc/testsuite/g++.dg/ipa/pr83667.C
+++ b/gcc/testsuite/g++.dg/ipa/pr83667.C
@@ -1,6 +1,7 @@
// { dg-require-alias "" }
// { dg-options "-fdump-ipa-inline" }
// c++/83667 ICE dumping a static thunk when TARGET_USE_LOCAL_THUNK_ALIAS_P
+// { dg-require-effective-target variadic_mi_thunk }
struct a
diff --git a/gcc/testsuite/g++.dg/musttail8.C b/gcc/testsuite/g++.dg/musttail8.C
index 0f1b68b..18de9c8 100644
--- a/gcc/testsuite/g++.dg/musttail8.C
+++ b/gcc/testsuite/g++.dg/musttail8.C
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { musttail } } } */
+/* { dg-do compile { target { musttail && { ! using_sjlj_exceptions } } } } */
/* { dg-options "-std=gnu++11" } */
/* { dg-additional-options "-fdelayed-branch" { target sparc*-*-* } } */
diff --git a/gcc/testsuite/g++.dg/musttail9.C b/gcc/testsuite/g++.dg/musttail9.C
index 85937dc..1c3a744 100644
--- a/gcc/testsuite/g++.dg/musttail9.C
+++ b/gcc/testsuite/g++.dg/musttail9.C
@@ -1,4 +1,4 @@
-/* { dg-do compile { target { musttail } } } */
+/* { dg-do compile { target { musttail && { ! using_sjlj_exceptions } } } } */
/* { dg-options "-std=gnu++11" } */
/* { dg-additional-options "-fdelayed-branch" { target sparc*-*-* } } */
diff --git a/gcc/testsuite/g++.dg/opt/musttail3.C b/gcc/testsuite/g++.dg/opt/musttail3.C
index 1c4e549..a2db447 100644
--- a/gcc/testsuite/g++.dg/opt/musttail3.C
+++ b/gcc/testsuite/g++.dg/opt/musttail3.C
@@ -1,5 +1,5 @@
// PR tree-optimization/119491
-// { dg-do compile { target { external_musttail && c++11 } } }
+// { dg-do compile { target { external_musttail && { c++11 && { ! using_sjlj_exceptions } } } } }
// { dg-options "-O2" }
struct A {
diff --git a/gcc/testsuite/g++.dg/opt/musttail4.C b/gcc/testsuite/g++.dg/opt/musttail4.C
index ede2959..3362ccc 100644
--- a/gcc/testsuite/g++.dg/opt/musttail4.C
+++ b/gcc/testsuite/g++.dg/opt/musttail4.C
@@ -1,4 +1,4 @@
-// { dg-do compile { target { external_musttail && c++11 } } }
+// { dg-do compile { target { external_musttail && { c++11 && { ! using_sjlj_exceptions } } } } }
// { dg-options "-O2 -fexceptions" }
struct S { ~S (); };
diff --git a/gcc/testsuite/g++.dg/opt/musttail5.C b/gcc/testsuite/g++.dg/opt/musttail5.C
index 604dd69..10e8d94 100644
--- a/gcc/testsuite/g++.dg/opt/musttail5.C
+++ b/gcc/testsuite/g++.dg/opt/musttail5.C
@@ -1,5 +1,5 @@
// PR tree-optimization/119491
-// { dg-do compile { target { external_musttail && c++11 } } }
+// { dg-do compile { target { external_musttail && { c++11 && { ! using_sjlj_exceptions } } } } }
// { dg-options "-O2" }
struct A {
diff --git a/gcc/testsuite/g++.dg/opt/pr119613.C b/gcc/testsuite/g++.dg/opt/pr119613.C
index 2ced2e8..c3657eb 100644
--- a/gcc/testsuite/g++.dg/opt/pr119613.C
+++ b/gcc/testsuite/g++.dg/opt/pr119613.C
@@ -1,5 +1,5 @@
// PR middle-end/119613
-// { dg-do compile { target { musttail && c++11 } } }
+// { dg-do compile { target { musttail && { c++11 && { ! using_sjlj_exceptions } } } } }
// { dg-options "-O0" }
struct S { S () {} };
diff --git a/gcc/testsuite/g++.dg/torture/pr81812.C b/gcc/testsuite/g++.dg/torture/pr81812.C
index b5c621d..80aed8e 100644
--- a/gcc/testsuite/g++.dg/torture/pr81812.C
+++ b/gcc/testsuite/g++.dg/torture/pr81812.C
@@ -1,4 +1,5 @@
// { dg-xfail-if "PR108277" { arm_thumb1 } }
+// { dg-require-effective-target variadic_mi_thunk }
struct Error {
virtual void error(... ) const;
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C b/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
index 4e684f9..e894194 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
@@ -1,5 +1,6 @@
// { dg-do run }
-// { dg-skip-if "fails with generic thunk support" { rs6000-*-* powerpc-*-eabi v850-*-* sh-*-* h8*-*-* xtensa*-*-* m32r*-*-* lm32-*-* } }
+// { dg-skip-if "fails with generic thunk support" { rs6000-*-* powerpc-*-eabi sh-*-* xtensa*-*-* } }
+// { dg-require-effective-target variadic_mi_thunk }
// Test that variadic function calls using thunks work right.
// Note that this will break on any target that uses the generic thunk
// support, because it doesn't support variadic functions.
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_52.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_52.f90
index cb7cf70..421d247 100644
--- a/gcc/testsuite/gfortran.dg/proc_ptr_52.f90
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_52.f90
@@ -1,4 +1,5 @@
! { dg-do run }
+! { dg-additional-options "-fcheck=pointer" }
!
! Test the fix for PRs93924 & 93925.
!
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_57.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_57.f90
new file mode 100644
index 0000000..7ecb88f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_57.f90
@@ -0,0 +1,36 @@
+! { dg-do compile }
+! { dg-additional-options "-fcheck=pointer" }
+!
+! PR fortran/102900
+
+module cs
+ implicit none
+ interface
+ function classStar_map_ifc() result(y)
+ import
+ class(*), pointer :: y
+ end function classStar_map_ifc
+ end interface
+
+contains
+
+ function selector()
+ procedure(classStar_map_ifc), pointer :: selector
+ selector => NULL()
+ end function selector
+
+ function selector_result() result(f)
+ procedure(classStar_map_ifc), pointer :: f
+ f => NULL()
+ end function selector_result
+
+ function fun(x) result(y)
+ class(*), pointer :: y
+ class(*), target, intent(in) :: x
+ select type (x)
+ class default
+ y => null()
+ end select
+ end function fun
+
+end module cs
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 869d150..287e51b 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -659,6 +659,37 @@ proc check_effective_target_trampolines { } {
return 1
}
+# Return 1 if target supports calling virtual variadic methods
+# of multi-inheritance classes.
+
+proc check_effective_target_variadic_mi_thunk { } {
+ # These targets do not implement TARGET_ASM_OUTPUT_MI_THUNK.
+ if { [istarget avr-*-*]
+ || [istarget bpf-*-*]
+ || [istarget fr30-*-*]
+ || [istarget ft32-*-*]
+ || [istarget amdgcn-*-*]
+ || [istarget h8300-*-*]
+ || [istarget iq2000-*-*]
+ || [istarget lm32-*-*]
+ || [istarget m32c-*-*]
+ || [istarget m32r-*-*]
+ || [istarget mcore-*-*]
+ || [istarget moxie-*-*]
+ || [istarget msp430-*-*]
+ || [istarget nvptx-*-*]
+ || [istarget pdp11-*-*]
+ || [istarget pru-*-*]
+ || [istarget rl78-*-*]
+ || [istarget rx-*-*]
+ || [istarget v850-*-*]
+ || [istarget visium-*-*] } {
+
+ return 0;
+ }
+ return 1
+}
+
# Return 1 if target has limited stack size.
proc check_effective_target_stack_size { } {
@@ -12632,6 +12663,18 @@ proc check_effective_target_exceptions_enabled {} {
}]
}
+# Returns 1 if target uses setjump/longjump for implementing exceptions,
+# 0 otherwise.
+proc check_effective_target_using_sjlj_exceptions {} {
+ return [check_no_compiler_messages using_sjlj_exceptions assembly {
+ // C++
+ #if !defined __USING_SJLJ_EXCEPTIONS__
+ #error not using SJLJ exception implementation
+ #endif
+ int dummy;
+ }]
+}
+
proc check_effective_target_tiny {} {
return [check_cached_effective_target tiny {
if { [istarget aarch64*-*-*]
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 66feed5..dc90779 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,11 @@
+2025-04-25 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/119853
+ PR target/119854
+ * config/gcn/crt0.c (_fini_array): Call
+ '__GCC_offload___cxa_finalize'.
+ * config/nvptx/gbl-ctors.c (__static_do_global_dtors): Likewise.
+
2025-04-19 Jiaxun Yang <jiaxun.yang@flygoat.com>
PR target/118257
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 49a62d4..d7f2a1a 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,42 @@
+2025-04-25 Andrew Stubbs <ams@baylibre.com>
+
+ * testsuite/libgomp.c/interop-hsa.c: New test.
+
+2025-04-25 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/119853
+ PR target/119854
+ * target-cxa-dso-dtor.c: New.
+ * config/accel/target-cxa-dso-dtor.c: Likewise.
+ * Makefile.am (libgomp_la_SOURCES): Add it.
+ * Makefile.in: Regenerate.
+ * testsuite/libgomp.c++/target-cdtor-1.C: New.
+ * testsuite/libgomp.c++/target-cdtor-2.C: Likewise.
+
+2025-04-25 Thomas Schwinge <tschwinge@baylibre.com>
+
+ * testsuite/libgomp.c-c++-common/target-cdtor-1.c: New.
+
+2025-04-25 Andrew Pinski <quic_apinski@quicinc.com>
+ Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/119737
+ * testsuite/libgomp.c++/target-exceptions-throw-1.C: Remove
+ PR119737 XFAILing.
+ * testsuite/libgomp.c++/target-exceptions-throw-2.C: Likewise.
+ * testsuite/libgomp.oacc-c++/exceptions-throw-1.C: Likewise.
+ * testsuite/libgomp.oacc-c++/exceptions-throw-2.C: Likewise.
+
+2025-04-25 Thomas Schwinge <tschwinge@baylibre.com>
+
+ PR target/118794
+ * testsuite/libgomp.c++/target-exceptions-pr118794-1.C: Adjust for
+ 'targetm.arm_eabi_unwinder'.
+ * testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-GCN.C:
+ Likewise.
+ * testsuite/libgomp.c++/target-exceptions-pr118794-1-offload-sorry-nvptx.C:
+ Likewise.
+
2025-04-24 Tobias Burnus <tburnus@baylibre.com>
* testsuite/lib/libgomp.exp
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6433d3f..7458220 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,143 @@
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/ptr_traits.h (to_address): Use markdown for
+ formatting in Doxygen comments.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/Makefile.am: Add prerequisites for targets that
+ depend on string-inst.cc.
+ * src/c++11/Makefile.in: Regenerate.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/move.h (addressof): Use __builtin_addressof
+ directly.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
+ Remove dg-error directives for additional c++26 errors.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/latch (latch::_M_a): Rename to _M_counter.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/formatfwd.h (__simply_formattable_range): Moved from
+ std/format.
+ * include/std/format (__formatter_str::_format): Extracted escaped
+ string handling to separate method...
+ (__formatter_str::_M_format_escaped): Use __Padding_sink.
+ (__formatter_str::_M_format): Adjusted implementation.
+ (__formatter_str::_S_trunc): Extracted as namespace function...
+ (__format::_truncate): Extracted from __formatter_str::_S_trunc.
+ (__format::_Seq_sink): Removed forward declarations, made members
+ protected and non-final.
+ (_Seq_sink::_M_trim): Define.
+ (_Seq_sink::_M_span): Renamed from view.
+ (_Seq_sink::view): Returns string_view instead of span.
+ (__format::_Str_sink): Moved after _Seq_sink.
+ (__format::__format_padded): Use _Padding_sink.
+ * testsuite/std/format/debug.cc: Add timeout and new tests.
+ * testsuite/std/format/ranges/sequence.cc: Specify unicode as
+ encoding and new tests.
+ * testsuite/std/format/ranges/string.cc: Likewise.
+ * testsuite/std/format/tuple.cc: Likewise.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ * testsuite/std/format/ranges/adaptors.cc: Updated test.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/22_locale/ctype/is/string/89728_neg.cc: Remove
+ dg-error for c++98_only effective target.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/119918
+ * include/bits/formatfwd.h (__format::_Align): Moved from std/format.
+ (std::__throw_format_error, __format::__formatter_str)
+ (__format::__formatter_ptr): Declare.
+ * include/std/format (__format::_Align): Moved to bits/formatfwd.h.
+ (__formatter_int::__formatter_int): Define.
+ (__format::__formatter_ptr): Extracted from formatter for const void*.
+ (std::formatter<const void*, _CharT>, formatter<void*, _CharT>)
+ (std::formatter<nullptr_t, _CharT>): Delegate to __formatter_ptr<_CharT>.
+ * include/std/thread (std::formatter<thread::id, _CharT>): Constrain
+ _CharT template parameter.
+ (formatter<thread::id, _CharT>::parse): Specify default aligment, and
+ qualify __throw_format_error to disable ADL.
+ (formatter<thread::id, _CharT>::format): Use formatters to write directly
+ to output.
+ * testsuite/30_threads/thread/id/output.cc: Tests for formatting thread::id
+ representing not-a-thread with padding and formattable concept.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/version.def (format_ranges): Remove no_stdname and
+ update value.
+ * include/bits/version.h: Regenerate.
+ * src/c++23/std.cc.in: Replace __glibcxx_format_ranges with
+ __cpp_lib_format_ranges.
+ * testsuite/std/format/formatter/lwg3944.cc: Likewise.
+ * testsuite/std/format/parse_ctx.cc: Likewise.
+ * testsuite/std/format/string.cc: Likewise.
+ * testsuite/std/format/ranges/feature_test.cc: New test.
+
+2025-04-25 Tomasz Kamiński <tkaminsk@redhat.com>
+
+ PR libstdc++/109162
+ * include/bits/formatfwd.h (__format::__parsable_with)
+ (__format::__formattable_with, __format::__formattable_impl)
+ (__format::__has_debug_format, __format::__const_formattable_range)
+ (__format::__maybe_const_range, __format::__maybe_const)
+ (std::formattable): Moved from std/format.
+ (__format::Iter_for, std::range_formatter): Forward declare.
+ * include/bits/stl_queue.h (std::formatter): Forward declare.
+ (std::queue, std::priority_queue): Befriend formatter specializations.
+ * include/bits/stl_stack.h (std::formatter): Forward declare.
+ (std::stack): Befriend formatter specializations.
+ * include/std/format (__format::_Iter_for): Define as struct with
+ (__format::__parsable_with, __format::__formattable_with)
+ (__format::__formattable_impl, __format::__has_debug_format)
+ (_format::__const_formattable_range, __format::__maybe_const_range)
+ (__format::__maybe_const, std::formattable): Moved to bits/formatfwd.h.
+ (std::range_formatter): Remove default argument specified in declaration
+ in bits/formatfwd.h.
+ * include/std/queue: Include bits/version.h before bits/stl_queue.h.
+ (formatter<queue<_Tp, _Container, _Compare>, _CharT>)
+ (formatter<priority_queue<_Tp, _Container, _Compare>, _CharT>): Define.
+ * include/std/stack: Include bits/version.h before bits/stl_stack.h
+ (formatter<stack<_Tp, _Container, _Compare>, _CharT>): Define.
+ * testsuite/std/format/ranges/adaptors.cc: New test.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/future (__future_base::_Task_state): Check
+ invocable requirement here.
+ (__future_base::_Task_state::_S_create): New static member
+ function.
+ (__future_base::_Task_state::_M_reset): Use _S_create.
+ (__create_task_state): Remove.
+ (packaged_task): Use _Task_state::_S_create instead of
+ __create_task_state.
+ * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
+ Adjust dg-error patterns.
+ * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc:
+ Likewise.
+
+2025-04-25 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_tree.h (_Rb_tree::_M_key_compare): New member
+ function to invoke comparison function.
+ (_Rb_tree): Use new member function instead of accessing the
+ comparison function directly.
+
2025-04-24 Jonathan Wakely <jwakely@redhat.com>
* testsuite/23_containers/forward_list/48101_neg.cc: Remove
diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h
index e91b003..085ca07 100644
--- a/libstdc++-v3/include/bits/move.h
+++ b/libstdc++-v3/include/bits/move.h
@@ -174,7 +174,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
[[__nodiscard__,__gnu__::__always_inline__]]
inline _GLIBCXX17_CONSTEXPR _Tp*
addressof(_Tp& __r) noexcept
- { return std::__addressof(__r); }
+ { return __builtin_addressof(__r); }
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 2598. addressof works on temporaries
diff --git a/libstdc++-v3/include/bits/ptr_traits.h b/libstdc++-v3/include/bits/ptr_traits.h
index d3c1765..4308669 100644
--- a/libstdc++-v3/include/bits/ptr_traits.h
+++ b/libstdc++-v3/include/bits/ptr_traits.h
@@ -223,7 +223,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/**
* @brief Obtain address referenced by a pointer to an object
* @param __ptr A pointer to an object
- * @return @c __ptr
+ * @return `__ptr`
* @ingroup pointer_abstractions
*/
template<typename _Tp>
@@ -239,8 +239,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/**
* @brief Obtain address referenced by a pointer to an object
* @param __ptr A pointer to an object
- * @return @c pointer_traits<_Ptr>::to_address(__ptr) if that expression is
- well-formed, otherwise @c to_address(__ptr.operator->())
+ * @return `pointer_traits<_Ptr>::to_address(__ptr)` if that expression is
+ * well-formed, otherwise `to_address(__ptr.operator->())`.
* @ingroup pointer_abstractions
*/
template<typename _Ptr>
diff --git a/libstdc++-v3/src/c++11/Makefile.am b/libstdc++-v3/src/c++11/Makefile.am
index b391158..26d6fa0 100644
--- a/libstdc++-v3/src/c++11/Makefile.am
+++ b/libstdc++-v3/src/c++11/Makefile.am
@@ -168,7 +168,15 @@ localename.lo: localename.cc
localename.o: localename.cc
$(CXXCOMPILE) -fchar8_t -c $<
+wstring-inst.lo: wstring-inst.cc string-inst.cc
+wstring-inst.o: wstring-inst.cc string-inst.cc
+
if ENABLE_DUAL_ABI
+cow-string-inst.lo: cow-string-inst.cc string-inst.cc
+cow-string-inst.o: cow-string-inst.cc string-inst.cc
+cow-wstring-inst.lo: cow-wstring-inst.cc string-inst.cc
+cow-wstring-inst.o: cow-wstring-inst.cc string-inst.cc
+
# Rewrite the type info for __ios_failure.
rewrite_ios_failure_typeinfo = sed -e '/^_*_ZTISt13__ios_failure:/,/_ZTVN10__cxxabiv120__si_class_type_infoE/s/_ZTVN10__cxxabiv120__si_class_type_infoE/_ZTVSt19__iosfail_type_info/'
diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in
index 770e948..dafdb26 100644
--- a/libstdc++-v3/src/c++11/Makefile.in
+++ b/libstdc++-v3/src/c++11/Makefile.in
@@ -896,6 +896,14 @@ localename.lo: localename.cc
localename.o: localename.cc
$(CXXCOMPILE) -fchar8_t -c $<
+wstring-inst.lo: wstring-inst.cc string-inst.cc
+wstring-inst.o: wstring-inst.cc string-inst.cc
+
+@ENABLE_DUAL_ABI_TRUE@cow-string-inst.lo: cow-string-inst.cc string-inst.cc
+@ENABLE_DUAL_ABI_TRUE@cow-string-inst.o: cow-string-inst.cc string-inst.cc
+@ENABLE_DUAL_ABI_TRUE@cow-wstring-inst.lo: cow-wstring-inst.cc string-inst.cc
+@ENABLE_DUAL_ABI_TRUE@cow-wstring-inst.o: cow-wstring-inst.cc string-inst.cc
+
@ENABLE_DUAL_ABI_TRUE@cxx11-ios_failure-lt.s: cxx11-ios_failure.cc
@ENABLE_DUAL_ABI_TRUE@ $(LTCXXCOMPILE) -gno-as-loc-support -S $< -o tmp-cxx11-ios_failure-lt.s
@ENABLE_DUAL_ABI_TRUE@ -test -f tmp-cxx11-ios_failure-lt.o && mv -f tmp-cxx11-ios_failure-lt.o tmp-cxx11-ios_failure-lt.s
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
index 7b5ede4..03fad14 100644
--- a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc
@@ -39,9 +39,6 @@ void test01()
// { dg-error "incomplete" "" { target *-*-* } 600 }
}
-// { dg-error "-Wdelete-incomplete" "" { target c++26 } 283 }
-// { dg-error "-Wdelete-incomplete" "" { target c++26 } 305 }
-
// Ignore additional diagnostic given with -Wsystem-headers:
// { dg-prune-output "has incomplete type" }
// { dg-prune-output "possible problem detected" }
diff --git a/maintainer-scripts/ChangeLog b/maintainer-scripts/ChangeLog
index 3c33199..f8b9f8d 100644
--- a/maintainer-scripts/ChangeLog
+++ b/maintainer-scripts/ChangeLog
@@ -1,3 +1,8 @@
+2025-04-25 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc_release: Allow optional \[[0-9]+\] before GCC major.minor
+ in the NEWS file.
+
2025-04-17 Jakub Jelinek <jakub@redhat.com>
* crontab: Snapshots from trunk are now GCC 16 related.