! RUN: %python %S/test_errors.py %s %flang_fc1 | |
! Ensure that an impure bound operator can't be called | |
! from a pure context. | |
module m | |
type t | |
contains | |
procedure :: binding => func | |
generic :: operator(.not.) => binding | |
end type | |
contains | |
impure integer function func(x) | |
class(t), intent(in) :: x | |
func = 0 | |
end | |
pure integer function test | |
!ERROR: Procedure 'func' referenced in pure subprogram 'test' must be pure too | |
test = .not. t() | |
end | |
end |