1! { dg-do run }
2! Test the fix for PR34231, in which the assumed size 'cnames'
3! would be wrongly associated with the scalar argument.
4!
5! Contributed by <francois.jacq@irsn.fr>
6!
7MODULE test
8
9   TYPE odbase ; INTEGER :: value ; END TYPE
10
11   INTERFACE odfname
12      MODULE PROCEDURE odfamilycname,odfamilycnames
13   END INTERFACE
14
15   CONTAINS
16
17   SUBROUTINE odfamilycnames(base,nfam,cnames)
18      TYPE(odbase),INTENT(in)  :: base
19      INTEGER     ,INTENT(out) :: nfam
20      CHARACTER(*),INTENT(out) :: cnames(*)
21      cnames(1:nfam)='odfamilycnames'
22   END SUBROUTINE
23
24   SUBROUTINE odfamilycname(base,pos,cname)
25      TYPE(odbase),INTENT(in)  :: base
26      INTEGER     ,INTENT(in)  :: pos
27      CHARACTER(*),INTENT(out) :: cname
28      cname='odfamilycname'
29   END SUBROUTINE
30
31END MODULE
32
33PROGRAM main
34  USE test
35  TYPE(odbase) :: base
36  INTEGER :: i=1
37  CHARACTER(14) :: cname
38  CHARACTER(14) :: cnames(1)
39  CALL odfname(base,i,cname)
40  if (trim (cname) .ne. "odfamilycname") call abort
41  CALL odfname(base,i,cnames)
42  if (trim (cnames(1)) .ne. "odfamilycnames") call abort
43END PROGRAM
44