summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/external_procedures_3.f90
blob: 987ba793cd0fe6d799221c6294e12d42e1fbfc09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
! { dg-do run }
! Tests the fix for PR32926, in which the call to fcn
! in bar would cause an ICE because it had not been referenced
! in the namespace where it was declared.
!
! Contributed by Ralph Baker Kearfott <rbk@louisiana.edu>
!
subroutine foobar1
  common // chr
  character(8) :: chr
  chr = "foobar1"
end subroutine
subroutine foobar2
  common // chr
  character(8) :: chr
  chr = "foobar2"
end subroutine

subroutine foo (fcn)
  external fcn
  call bar
contains
  subroutine bar
    call fcn
  end subroutine bar
end subroutine foo

  external foo, foobar1, foobar2
  common // chr
  character(8) :: chr
  call foo (foobar1)
  if (chr .ne. "foobar1") call abort ()
  call foo (foobar2)
  if (chr .ne. "foobar2") call abort ()
end