! { dg-do run } ! ! Correct an error in the eveluation of the CFI descriptor attribute for ! the case where the bind_C formal argument is not an assumed shape array ! and not allocatable or pointer. ! ! Contributed by Gilles Gouaillardet ! MODULE FOO INTERFACE SUBROUTINE dummy(buf) BIND(C, name="sync") type(*), dimension(..) :: buf END SUBROUTINE END INTERFACE END MODULE PROGRAM main USE FOO IMPLICIT NONE integer(8) :: before, after INTEGER, parameter :: n = 1 INTEGER, ALLOCATABLE :: buf(:) INTEGER :: buf2(n) INTEGER :: i ALLOCATE(buf(n)) before = LOC(buf(1)) CALL dummy (buf) after = LOC(buf(1)) if (before .NE. after) stop 1 before = LOC(buf2(1)) CALL dummy (buf) after = LOC(buf2(1)) if (before .NE. after) stop 2 END PROGRAM