https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120163
Bug ID: 120163 Summary: Can not import module containig call to pure routine via abstract interface Product: gcc Version: 15.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: baradi09 at gmail dot com Target Milestone: --- GIVEN: * A module defines an abstract interface for a pure subroutine (callback_interface). * Within the same module, a routine declares a dummy argument of the type procedure(callback_interface). * This routine internally calls the dummy procedure argument. * The flag -Wall is turned on during compilation WHEN: * This module is imported into another module using a USE statement. THEN: * Compilation of the importing module fails with cryptic error message. MINIMAL WORKING EXAMPLE: File: test.f90 module mod1 implicit none abstract interface pure subroutine callback_interface(a) real, intent(in) :: a end subroutine callback_interface end interface contains subroutine caller(callback) procedure(callback_interface) :: callback real :: a call callback(a) end subroutine caller end module mod1 module mod2 use mod1 end module mod2 Compiling the code with gfortran -c -Wall test.f90 EXPECTED BEHAVIOR Code compiles without any warnings. OBSERVED BEHAVIOR Compilation aborts due to error message: test.f90:22:6: 22 | use mod1 | 1 Error: Argument ‘_formal_0’ of pure subroutine ‘callback’ at (1) must have its INTENT specified or have the VALUE attribute test.f90:22:6: 22 | use mod1 | 1 Error: Argument ‘_formal_0’ of pure subroutine ‘callback’ at (1) must have its INTENT specified or have the VALUE attribute