! { dg-do run } | |
! Tests fix for PR31193, in which the character length for MOLD in | |
! case 1 below was not being translated correctly for character | |
! constants and an ICE ensued. The further cases are either checks | |
! or new bugs that were found in the course of development cases 3 & 5. | |
! | |
! Contributed by Brooks Moses <brooks@gcc.gnu.org> | |
! | |
function NumOccurances (string, chr, isel) result(n) | |
character(*),intent(in) :: string | |
character(1),intent(in) :: chr | |
integer :: isel | |
! | |
! return number of occurances of character in given string | |
! | |
select case (isel) | |
case (1) | |
n=count(transfer(string, char(1), len(string))==chr) | |
case (2) | |
n=count(transfer(string, chr, len(string))==chr) | |
case (3) | |
n=count(transfer(string, "a", len(string))==chr) | |
case (4) | |
n=count(transfer(string, (/"a","b"/), len(string))==chr) | |
case (5) | |
n=count(transfer(string, string(1:1), len(string))==chr) | |
end select | |
return | |
end | |
if (NumOccurances("abacadae", "a", 1) .ne. 4) STOP 1 | |
if (NumOccurances("abacadae", "a", 2) .ne. 4) STOP 2 | |
if (NumOccurances("abacadae", "a", 3) .ne. 4) STOP 3 | |
if (NumOccurances("abacadae", "a", 4) .ne. 4) STOP 4 | |
if (NumOccurances("abacadae", "a", 5) .ne. 4) STOP 5 | |
end |