1! { dg-do run }
2! { dg-additional-sources ISO_Fortran_binding_3.c }
3!
4! Test the fix for PR88929.
5!
6  integer, dimension (:,:), allocatable :: actual
7  integer, dimension(2,2) :: src = reshape ([1,2,3,4], [2,2])
8
9  allocate (actual, source = src)
10
11  ier = test1 (actual)
12  if (ier .ne. 0) stop 1
13  if (any (actual .ne. src + 1)) stop 2
14
15contains
16
17  function test1 (arg) RESULT(err)
18    USE, INTRINSIC :: ISO_C_BINDING
19    INTEGER(C_INT) :: err
20    type(*), dimension(..), intent(inout) :: arg
21    interface
22      function test_c (a) BIND(C, NAME="c_test") RESULT(err)
23          USE, INTRINSIC :: ISO_C_BINDING
24          type(*), dimension(..), intent(inout) :: a
25          INTEGER(C_INT) :: err
26      end function
27    end interface
28
29    err = test_c (arg) ! This used to ICE
30
31  end function test1
32end
33