! { 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