diff -Nrcpad gcc-13-20260416/LAST_UPDATED gcc-13-20260422/LAST_UPDATED
*** gcc-13-20260416/LAST_UPDATED	Thu Apr 16 22:32:17 2026
--- gcc-13-20260422/LAST_UPDATED	Wed Apr 22 22:32:20 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-13 revision d94d9df139735113b84e406ec32e6fd79478ee64
--- 1 ----
! Obtained from git: releases/gcc-13 revision 17a81577c4405f789fe5f999c5cfda6f907fdc6a
diff -Nrcpad gcc-13-20260416/MD5SUMS gcc-13-20260422/MD5SUMS
*** gcc-13-20260416/MD5SUMS	Thu Apr 16 22:32:21 2026
--- gcc-13-20260422/MD5SUMS	Wed Apr 22 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260416.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260422.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 03dbd5e61aba94b5aab8385162694387  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! bdcff757325f2813d21ffff791e02842  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 510,516 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 2ba59451734e264203d489e34ebb2753  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 510,516 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! a99b98f476fbabe85eb0132c8c814642  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c2dbf831f4bbc53553765214d1b2d674  gcc/fl
*** 5576,5582 ****
  46538296abcbd26df93f276f5974ec0f  gcc/fold-const-call.h
  e091b0ed4e31525d6d685d5e6f7a7fa0  gcc/fold-const.cc
  9dd2c87502c864095a8b942bea07b5f3  gcc/fold-const.h
! 9bf2fb0397f40ecc8371b757d74498d8  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5576,5582 ----
  46538296abcbd26df93f276f5974ec0f  gcc/fold-const-call.h
  e091b0ed4e31525d6d685d5e6f7a7fa0  gcc/fold-const.cc
  9dd2c87502c864095a8b942bea07b5f3  gcc/fold-const.h
! 0b461d46b66590e370f95bd573f4cec2  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** b16988fb11ef93959450cfdd9eaa8825  gcc/fo
*** 5665,5671 ****
  45ab297b0b34853431ed0f3c09a63db3  gcc/fortran/trans-const.cc
  2825c959ade33ef2a6492d640b05ef8c  gcc/fortran/trans-const.h
  c15bfe2308615f6c0395efd6cdf7a3ae  gcc/fortran/trans-decl.cc
! db3105c2b544e19c5f87f1fc6165b7c0  gcc/fortran/trans-expr.cc
  7a6a0f4f555cbc9df7d147a017fc7444  gcc/fortran/trans-intrinsic.cc
  f6db1c9d47520d97d86df27171bd0050  gcc/fortran/trans-io.cc
  c7930b7764e05d4b5c9e3c65f7ccc34c  gcc/fortran/trans-openmp.cc
--- 5665,5671 ----
  45ab297b0b34853431ed0f3c09a63db3  gcc/fortran/trans-const.cc
  2825c959ade33ef2a6492d640b05ef8c  gcc/fortran/trans-const.h
  c15bfe2308615f6c0395efd6cdf7a3ae  gcc/fortran/trans-decl.cc
! a9f1ee4e35ea493d86fa56e00192e4d9  gcc/fortran/trans-expr.cc
  7a6a0f4f555cbc9df7d147a017fc7444  gcc/fortran/trans-intrinsic.cc
  f6db1c9d47520d97d86df27171bd0050  gcc/fortran/trans-io.cc
  c7930b7764e05d4b5c9e3c65f7ccc34c  gcc/fortran/trans-openmp.cc
*************** b829ed0032c899e107be2db349c913f3  gcc/ta
*** 7637,7643 ****
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 41a116d903855c488615619801b30174  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 7637,7643 ----
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 9d48c96bd79178b31ff2b47b992f7359  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** c2c9b1a1db79eedb25331d3565231b66  gcc/te
*** 87763,87768 ****
--- 87763,87769 ----
  6db6e7072dccd0be789b6dc9bd2a586c  gcc/testsuite/gfortran.dg/gomp/pr93555.f90
  a921eeb5697bd066712d41d66d374930  gcc/testsuite/gfortran.dg/gomp/pr94672.f90
  8a04653b9aa2543e13a3136934e00444  gcc/testsuite/gfortran.dg/gomp/pr95869.f90
+ 8512ba21f2d6bfcb3e878c6c91c4dc17  gcc/testsuite/gfortran.dg/gomp/pr98203.f90
  499f4d9c60bbb1a2be81d1888def444c  gcc/testsuite/gfortran.dg/gomp/pr99226.f90
  bcd0369b2e799c3808032efd4c583295  gcc/testsuite/gfortran.dg/gomp/pr99928-1.f90
  5a122e0df6f86c9b8f25e3ef0a8de595  gcc/testsuite/gfortran.dg/gomp/pr99928-11.f90
*************** cbd40bc334c217d37c198b1f27373810  gcc/te
*** 89482,89487 ****
--- 89483,89489 ----
  09759ba73ae30c3a54be532d97b7f526  gcc/testsuite/gfortran.dg/pr102520.f90
  107263fe1c86ee042c855774a2b8e242  gcc/testsuite/gfortran.dg/pr102532.f90
  4efde3b7d107b33c9c8792e23b683d17  gcc/testsuite/gfortran.dg/pr102596.f90
+ 322a54b0e735415005b9446efbfd32f0  gcc/testsuite/gfortran.dg/pr102619.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
*************** d4b65efea892e3a54acdb92a298fc582  gcc/te
*** 89543,89549 ****
  0677f2dac82b1b95cde8edf69efd60a9  gcc/testsuite/gfortran.dg/pr106918.f90
  09719e2d59fe58682ef7a737cdf01620  gcc/testsuite/gfortran.dg/pr106934.f90
  e1ccca85dc432ca649742c05520157d9  gcc/testsuite/gfortran.dg/pr106945.f90
- 1b7098a64b99eb214b607f599b3eb32f  gcc/testsuite/gfortran.dg/pr106946.f90
  a9c6ba4d14cec93cd2edec54fda6a916  gcc/testsuite/gfortran.dg/pr106985.f90
  eb96b826eeaf84f157c8635706721d40  gcc/testsuite/gfortran.dg/pr106986.f90
  054c58cb24c0bee4ea0b5fcf3cdbf86d  gcc/testsuite/gfortran.dg/pr106999.f90
--- 89545,89550 ----
diff -Nrcpad gcc-13-20260416/gcc/DATESTAMP gcc-13-20260422/gcc/DATESTAMP
*** gcc-13-20260416/gcc/DATESTAMP	Thu Apr 16 22:32:05 2026
--- gcc-13-20260422/gcc/DATESTAMP	Wed Apr 22 22:32:06 2026
***************
*** 1 ****
! 20260416
--- 1 ----
! 20260422
diff -Nrcpad gcc-13-20260416/gcc/fortran/ChangeLog gcc-13-20260422/gcc/fortran/ChangeLog
*** gcc-13-20260416/gcc/fortran/ChangeLog	Thu Apr 16 22:32:06 2026
--- gcc-13-20260422/gcc/fortran/ChangeLog	Wed Apr 22 22:32:07 2026
***************
*** 1,3 ****
--- 1,16 ----
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102619
+ 	* trans-expr.cc (gfc_get_interface_mapping_array): Add argument
+ 	'assumed_rank_formal', which if true returns the descriptor in
+ 	'ifm'.
+ 	(gfc_add_interface_mapping): Detect an assumed rank formal arg
+ 	of a non-intrinsic function to set 'assumed_rank_formal' and
+ 	pass the descriptor to gfc_get_interface_mapping_array.
+ 
  2026-04-14  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260416/gcc/fortran/trans-expr.cc gcc-13-20260422/gcc/fortran/trans-expr.cc
*** gcc-13-20260416/gcc/fortran/trans-expr.cc	Thu Apr 16 22:32:06 2026
--- gcc-13-20260422/gcc/fortran/trans-expr.cc	Wed Apr 22 22:32:07 2026
*************** gfc_get_interface_mapping_charlen (gfc_i
*** 4378,4390 ****
  
  /* A subroutine of gfc_add_interface_mapping.  Return a descriptorless
     array variable that can be used as the actual argument for dummy
!    argument SYM.  Add any initialization code to BLOCK.  PACKED is as
!    for gfc_get_nodesc_array_type and DATA points to the first element
!    in the passed array.  */
  
  static tree
  gfc_get_interface_mapping_array (stmtblock_t * block, gfc_symbol * sym,
! 				 gfc_packed packed, tree data, tree len)
  {
    tree type;
    tree var;
--- 4378,4392 ----
  
  /* A subroutine of gfc_add_interface_mapping.  Return a descriptorless
     array variable that can be used as the actual argument for dummy
!    argument SYM, except in the case of assumed rank dummies of
!    non-intrinsic functions where the descriptor must be passed. Add any
!    initialization code to BLOCK. PACKED is as for gfc_get_nodesc_array_type
!    and DATA points to the first element in the passed array.  */
  
  static tree
  gfc_get_interface_mapping_array (stmtblock_t * block, gfc_symbol * sym,
! 				 gfc_packed packed, tree data, tree len,
! 				 bool assumed_rank_formal)
  {
    tree type;
    tree var;
*************** gfc_get_interface_mapping_array (stmtblo
*** 4393,4399 ****
      type = gfc_get_character_type_len (sym->ts.kind, len);
    else
      type = gfc_typenode_for_spec (&sym->ts);
!   type = gfc_get_nodesc_array_type (type, sym->as, packed,
  				    !sym->attr.target && !sym->attr.pointer
  				    && !sym->attr.proc_pointer);
  
--- 4395,4405 ----
      type = gfc_get_character_type_len (sym->ts.kind, len);
    else
      type = gfc_typenode_for_spec (&sym->ts);
! 
!   if (assumed_rank_formal)
!     type = TREE_TYPE (data);
!   else
!     type = gfc_get_nodesc_array_type (type, sym->as, packed,
  				    !sym->attr.target && !sym->attr.pointer
  				    && !sym->attr.proc_pointer);
  
*************** gfc_add_interface_mapping (gfc_interface
*** 4566,4580 ****
    else if (POINTER_TYPE_P (TREE_TYPE (se->expr))
  	   && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (se->expr))))
      {
        /* Get the actual argument's descriptor.  */
        desc = build_fold_indirect_ref_loc (input_location,
  				      se->expr);
  
        /* Create the replacement variable.  */
!       tmp = gfc_conv_descriptor_data_get (desc);
        value = gfc_get_interface_mapping_array (&se->pre, sym,
  					       PACKED_NO, tmp,
! 					       se->string_length);
  
        /* Use DESC to work out the upper bounds, strides and offset.  */
        gfc_set_interface_mapping_bounds (&se->pre, TREE_TYPE (value), desc);
--- 4572,4598 ----
    else if (POINTER_TYPE_P (TREE_TYPE (se->expr))
  	   && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (se->expr))))
      {
+       bool assumed_rank_formal = false;
+ 
        /* Get the actual argument's descriptor.  */
        desc = build_fold_indirect_ref_loc (input_location,
  				      se->expr);
  
        /* Create the replacement variable.  */
!       if (sym->as && sym->as->type == AS_ASSUMED_RANK
! 	  && !(sym->ns && sym->ns->proc_name
! 	       && sym->ns->proc_name->attr.proc == PROC_INTRINSIC))
! 	{
! 	  assumed_rank_formal = true;
! 	  tmp = desc;
! 	}
!       else
! 	tmp = gfc_conv_descriptor_data_get (desc);
! 
        value = gfc_get_interface_mapping_array (&se->pre, sym,
  					       PACKED_NO, tmp,
! 					       se->string_length,
! 					       assumed_rank_formal);
  
        /* Use DESC to work out the upper bounds, strides and offset.  */
        gfc_set_interface_mapping_bounds (&se->pre, TREE_TYPE (value), desc);
*************** gfc_add_interface_mapping (gfc_interface
*** 4583,4589 ****
      /* Otherwise we have a packed array.  */
      value = gfc_get_interface_mapping_array (&se->pre, sym,
  					     PACKED_FULL, se->expr,
! 					     se->string_length);
  
    new_sym->backend_decl = value;
  }
--- 4601,4608 ----
      /* Otherwise we have a packed array.  */
      value = gfc_get_interface_mapping_array (&se->pre, sym,
  					     PACKED_FULL, se->expr,
! 					     se->string_length,
! 					     false);
  
    new_sym->backend_decl = value;
  }
diff -Nrcpad gcc-13-20260416/gcc/testsuite/ChangeLog gcc-13-20260422/gcc/testsuite/ChangeLog
*** gcc-13-20260416/gcc/testsuite/ChangeLog	Thu Apr 16 22:32:07 2026
--- gcc-13-20260422/gcc/testsuite/ChangeLog	Wed Apr 22 22:32:08 2026
***************
*** 1,3 ****
--- 1,30 ----
+ 2026-04-21  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-03  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/98203
+ 	PR fortran/98203
+ 	* gfortran.dg/gomp/pr98203.f90: New test.
+ 
+ 2026-04-19  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/106946
+ 	* gfortran.dg/pr106946.f90: Removed.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102619
+ 	* gfortran.dg/pr102619.f90: New test.
+ 
+ 2026-04-16  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/121616
+ 	* gfortran.dg/alloc_comp_assign_17.f90: Removed.
+ 
  2026-04-14  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260416/gcc/testsuite/gfortran.dg/gomp/pr98203.f90 gcc-13-20260422/gcc/testsuite/gfortran.dg/gomp/pr98203.f90
*** gcc-13-20260416/gcc/testsuite/gfortran.dg/gomp/pr98203.f90	Thu Jan  1 00:00:00 1970
--- gcc-13-20260422/gcc/testsuite/gfortran.dg/gomp/pr98203.f90	Wed Apr 22 22:32:14 2026
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! PR fortran/98203
+ ! Contributed by G. Steinmetz <gscfq@t-online.de>
+ !
+ ! ICE in gfc_trans_omp_do with collapse(2) and non-unit stride.
+ 
+ subroutine s
+   integer :: i, j
+   !$omp parallel do collapse(2)
+   do i = 1, 10, 2
+     do j = 1, 10
+     end do
+   end do
+ end
diff -Nrcpad gcc-13-20260416/gcc/testsuite/gfortran.dg/pr102619.f90 gcc-13-20260422/gcc/testsuite/gfortran.dg/pr102619.f90
*** gcc-13-20260416/gcc/testsuite/gfortran.dg/pr102619.f90	Thu Jan  1 00:00:00 1970
--- gcc-13-20260422/gcc/testsuite/gfortran.dg/pr102619.f90	Wed Apr 22 22:32:14 2026
***************
*** 0 ****
--- 1,23 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR102619.
+ !
+ ! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+ !
+ program p
+   implicit none
+   real :: w(2,3)
+   real, allocatable :: y(:)
+   y = h(w)                        ! Caused an ICE
+   if (size (y) /= product (shape (w))) stop 1
+   if (any (int (y) /= [1,2,3,4,5,6])) stop 2
+   deallocate (y)
+ contains
+   function h(x) result (g)
+     real :: x(..)
+     real :: g(product(shape(x)))
+     integer :: i
+     if (any (shape (x) /= shape (w))) stop 3
+     g = [(real(i),i=1,size(g))]
+   end
+ end
diff -Nrcpad gcc-13-20260416/gcc/testsuite/gfortran.dg/pr106946.f90 gcc-13-20260422/gcc/testsuite/gfortran.dg/pr106946.f90
*** gcc-13-20260416/gcc/testsuite/gfortran.dg/pr106946.f90	Thu Apr 16 22:32:11 2026
--- gcc-13-20260422/gcc/testsuite/gfortran.dg/pr106946.f90	Thu Jan  1 00:00:00 1970
***************
*** 1,30 ****
- ! { dg-do compile }
- ! PR fortran/106946
- ! ICE in resolve_component on invalid CLASS declaration with missing comma.
- !
- ! The bad declarations below should diagnose and continue without leaving
- ! behind dangling CLASS container symbols in the surrounding namespace.
- 
- program p
-   type :: u
-   end type
- 
-   type :: v
-   end type
- 
-   type :: w
-   end type
- 
-   type :: t1
-     class(u), allocatable :: a b  ! { dg-error "Syntax error in data declaration" }
-   end type
- 
-   type :: t2
-     class(v), pointer :: p q  ! { dg-error "Syntax error in data declaration" }
-   end type
- 
-   type :: t3
-     class(w), allocatable :: ok
-     class(w), allocatable :: x y  ! { dg-error "Syntax error in data declaration" }
-   end type
- end
--- 0 ----
