https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72755
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #6 from kargl at gcc dot gnu.org ---
Reduced to something less than 3000 lines of code. Sheesh.
module m_string
implicit none
type t_string
character(len=:), allocatable :: buffer
contains
generic :: assignment(=) => string_assign_from_string
procedure, private :: string_assign_from_string
end type t_string
contains
subroutine string_assign_from_string( left, right )
class(t_string), intent(inout) :: left
type(t_string), intent(in) :: right
end subroutine string_assign_from_string
end module m_string
module m_msg
use m_string
implicit none
type t_msg
integer :: code = 0
type(t_string) :: text, mod, proc
contains
procedure :: get_code => msg_code_get
end type t_msg
contains
elemental function msg_code_get( this ) result(res)
class(t_msg), intent(in) :: this
integer :: res
res = this%code
end function msg_code_get
end module m_msg
module m_messages
use m_msg
implicit none
type t_messages
integer :: unit = -1
type(t_msg), dimension(:), allocatable :: error_buffer
type(t_msg), dimension(:), allocatable :: warning_buffer
end type t_messages
contains
subroutine messages_push_back( array, msg )
type(t_msg), dimension(:), allocatable, intent(inout) :: array
type(t_msg), intent(in) :: msg
integer idx
idx = count(array%get_code() /= 0) + 1
array(idx) = msg
end subroutine messages_push_back
end module m_messages