1! { dg-do run } 2integer function char_select (s) 3 character(len=*), intent(in) :: s 4 5 select case(s) 6 case ("foo") 7 char_select = 1 8 case ("bar", "gee") 9 char_select = 2 10 case ("111", "999") 11 char_select = 3 12 case ("1024", "1900") 13 char_select = 4 14 case ("12", "17890") 15 char_select = 5 16 case default 17 char_select = -1 18 end select 19end function char_select 20 21integer function char_select2 (s) 22 character(len=*), intent(in) :: s 23 24 char_select2 = -1 25 select case(s) 26 case ("foo") 27 char_select2 = 1 28 case ("bar", "gee") 29 char_select2 = 2 30 case ("111", "999") 31 char_select2 = 3 32 case ("1024", "1900") 33 char_select2 = 4 34 case ("12", "17890") 35 char_select2 = 5 36 end select 37end function char_select2 38 39 40program test 41 interface 42 integer function char_select (s) 43 character(len=*), intent(in) :: s 44 end function char_select 45 integer function char_select2 (s) 46 character(len=*), intent(in) :: s 47 end function char_select2 48 end interface 49 50 if (char_select("foo") /= 1) call abort 51 if (char_select("foo ") /= 1) call abort 52 if (char_select("foo2 ") /= -1) call abort 53 if (char_select("bar") /= 2) call abort 54 if (char_select("gee") /= 2) call abort 55 if (char_select("000") /= -1) call abort 56 if (char_select("101") /= -1) call abort 57 if (char_select("109") /= -1) call abort 58 if (char_select("111") /= 3) call abort 59 if (char_select("254") /= -1) call abort 60 if (char_select("999") /= 3) call abort 61 if (char_select("9989") /= -1) call abort 62 if (char_select("1882") /= -1) call abort 63 64 if (char_select2("foo") /= 1) call abort 65 if (char_select2("foo ") /= 1) call abort 66 if (char_select2("foo2 ") /= -1) call abort 67 if (char_select2("bar") /= 2) call abort 68 if (char_select2("gee") /= 2) call abort 69 if (char_select2("000") /= -1) call abort 70 if (char_select2("101") /= -1) call abort 71 if (char_select2("109") /= -1) call abort 72 if (char_select2("111") /= 3) call abort 73 if (char_select2("254") /= -1) call abort 74 if (char_select2("999") /= 3) call abort 75 if (char_select2("9989") /= -1) call abort 76 if (char_select2("1882") /= -1) call abort 77end program test 78