blob: de273d52ea0aae02281f1ab8aa8ef3504da99630 (
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
36
37
38
39
40
41
42
43
44
|
! { dg-do compile }
! { dg-options "-std=f95" }
!
! This tests the patch for PR25024.
! PR25024 - The external attribute for subroutine a would cause an ICE.
subroutine A ()
EXTERNAL A ! { dg-error "EXTERNAL attribute conflicts with SUBROUTINE" }
END
function ext (y) ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
real ext, y
external ext
!ext = y * y
end function ext
function ext1 (y)
real ext1, y
external z ! OK no conflict
ext1 = y * y
end function ext1
program main
real ext, inval
external ext ! OK, valid external reference.
external main ! { dg-error "PROGRAM attribute conflicts with EXTERNAL" }
interface
function ext1 (y)
real ext1, y
external ext1
end function ext1 ! { dg-error "Duplicate EXTERNAL attribute" }
end interface
inval = 1.0
print *, ext(inval)
print *, ext1(inval)
print *, inv(inval)
contains
function inv (y) ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
real inv, y
external inv
!inv = y * y * y
end function inv
end program main
|