public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/107742] New: class mismatch in passed procedure
@ 2022-11-18 2:09 jwmwalrus at gmail dot com
0 siblings, 0 replies; only message in thread
From: jwmwalrus at gmail dot com @ 2022-11-18 2:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107742
Bug ID: 107742
Summary: class mismatch in passed procedure
Product: gcc
Version: 12.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: jwmwalrus at gmail dot com
Target Milestone: ---
Hi.
The code below throws the following error:
51 | if (this%match(my_proc, 5)) continue
| 1
Error: Interface mismatch in dummy procedure ‘proc’ at (1): Type mismatch in
argument 'this' (CLASS(a)/CLASS(b))
----------8<----------
module mod1
type, abstract :: a
contains
procedure(i_match), deferred :: match
end type
abstract interface
subroutine i_proc(this, i)
import
class(a), intent(inout) :: this
integer, intent(in) :: i
end subroutine
function i_match(this, proc, i) result(cond)
import
logical :: cond
class(a), intent(inout) :: this
procedure(i_proc) :: proc
integer, intent(in) :: i
end function
end interface
type, extends(a) :: b
contains
procedure :: match => match_b
procedure :: exec
end type
interface
module subroutine exec(this)
class(b), intent(inout) :: this
end subroutine
end interface
contains
function match_b(this, proc, i) result(cond)
logical :: cond
class(b), intent(inout) :: this
procedure(i_proc) :: proc
integer, intent(in) :: i
call proc(this, i)
cond = .true.
end function
subroutine my_proc(this, i)
class(b), intent(inout) :: this
integer, intent(in) :: i
end subroutine
end module
submodule (mod1) smod1
contains
module procedure exec
if (this%match(my_proc, 5)) continue
end procedure
end submodule
---------->8----------
Since type b extends type a, doesn't my_proc satisfy the i_proc interface?
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-11-18 2:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-18 2:09 [Bug fortran/107742] New: class mismatch in passed procedure jwmwalrus at gmail dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).