! { dg-do compile } ! Tests fix for PR26107 in which an ICE would occur after the second ! error message below. This resulted from a spurious attempt to ! produce the third error message, without the name of the function. ! ! This is an expanded version of the testcase in the PR. ! pure function equals(self, & ! { dg-error "must be INTENT" } string, ignore_case) result(same) character(*), intent(in) :: string integer(4), intent(in) :: ignore_case integer(4) :: same if (len (self) < 1) return ! { dg-error "must be CHARACTER" } same = 1 end function function impure(self) result(ival) character(*), intent(in) :: self ival = 1 end function pure function purity(self, string, ignore_case) result(same) character(*), intent(in) :: self character(*), intent(in) :: string integer(4), intent(in) :: ignore_case integer i if (end > impure (self)) & ! { dg-error "non-PURE procedure" } return end function