! { 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)
+
+function ext (y) ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
real ext, y
- external ext ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
- ext = y * y
+ external ext
+ !ext = y * y
end function ext
function ext1 (y)
interface
function ext1 (y)
real ext1, y
- external ext1 ! { dg-error "Duplicate EXTERNAL attribute" }
- end function ext1
+ 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)
+ function inv (y) ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
real inv, y
- external inv ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
- inv = y * y * y
+ external inv
+ !inv = y * y * y
end function inv
end program main