1! { dg-do compile }
2! Tests fix for PR26107 in which an ICE would occur after the second
3! error message below.  This resulted from a spurious attempt to
4! produce the third error message, without the name of the function.
5!
6! This is an expanded version of the testcase in the PR.
7!
8   pure function equals(self, &     ! { dg-error "must be INTENT" }
9                        string, ignore_case) result(same)
10         character(*), intent(in) :: string
11         integer(4), intent(in) :: ignore_case
12         integer(4) :: same
13         if (len (self) < 1) return ! { dg-error "must be CHARACTER" }
14         same = 1
15   end function
16
17   function impure(self) result(ival)
18         character(*), intent(in) :: self
19         ival = 1
20   end function
21
22   pure function purity(self, string, ignore_case) result(same)
23         character(*), intent(in) :: self
24         character(*), intent(in) :: string
25         integer(4), intent(in) :: ignore_case
26         integer i
27         if (end > impure (self)) & ! { dg-error "impure function" }
28           return
29   end function
30