https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118705

kargls at comcast dot net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargls at comcast dot net

--- Comment #1 from kargls at comcast dot net ---
Thanks for the bug report, and taking the time to reduce it to a minimal
example.

The code is hitting an assert at line 4684 in gcc/fortran/interface.cc.
If, instead, gfortran returned NULL, then we get an error message

heading_s.f90:5:11:

    5 |         if(.isPrestressBm.class_) write(*,*) "Hello"
      |           1
Error: Unknown operator 'isprestressbm' at (1)
*** Error code 1

If I make the following simple change, where I move the 
USE statement into the specification part of the the
heading_mod, the code compiles.

module heading_mod
    use classification_mod, only: classification_t
    implicit none
    private
    public :: HEADING
    interface
        module subroutine HEADING (class_)
!            use classification_mod, only: classification_t
            implicit none
            type(classification_t), intent(in) :: class_
        end subroutine HEADING
    end interface
end module heading_mod

I have no idea why this works at the moment.

Reply via email to