1316485Sdavidcs! { dg-do run }
2316485Sdavidcs! { dg-options "-O -fdump-tree-original" }
3316485Sdavidcs
4316485Sdavidcs  if (foo ('E') .ne. 1) call abort
5316485Sdavidcs  if (foo ('e') .ne. 1) call abort
6316485Sdavidcs  if (foo ('f') .ne. 2) call abort
7316485Sdavidcs  if (foo ('g') .ne. 2) call abort
8316485Sdavidcs  if (foo ('h') .ne. 2) call abort
9316485Sdavidcs  if (foo ('Q') .ne. 3) call abort
10316485Sdavidcs  if (foo (' ') .ne. 4) call abort
11316485Sdavidcs  if (bar ('e') .ne. 1) call abort
12316485Sdavidcs  if (bar ('f') .ne. 3) call abort
13316485Sdavidcscontains
14316485Sdavidcs  function foo (c)
15316485Sdavidcs    character :: c
16316485Sdavidcs    integer :: foo
17316485Sdavidcs    select case (c)
18316485Sdavidcs      case ('E','e')
19316485Sdavidcs        foo = 1
20316485Sdavidcs      case ('f':'h  ')
21316485Sdavidcs        foo = 2
22316485Sdavidcs      case default
23316485Sdavidcs        foo = 3
24316485Sdavidcs      case ('')
25316485Sdavidcs        foo = 4
26316485Sdavidcs    end select
27316485Sdavidcs  end function
28316485Sdavidcs  function bar (c)
29316485Sdavidcs    character :: c
30316485Sdavidcs    integer :: bar
31316485Sdavidcs    select case (c)
32316485Sdavidcs      case ('ea':'ez')
33316485Sdavidcs        bar = 2
34316485Sdavidcs      case ('e')
35316485Sdavidcs        bar = 1
36316485Sdavidcs      case default
37316485Sdavidcs        bar = 3
38316485Sdavidcs      case ('fd')
39316485Sdavidcs        bar = 4
40316485Sdavidcs    end select
41316485Sdavidcs  end function
42316485Sdavidcsend
43316485Sdavidcs
44316485Sdavidcs! { dg-final { scan-tree-dump-not "_gfortran_select_string" "original" } }
45316485Sdavidcs! { dg-final { cleanup-tree-dump "original" } }
46316485Sdavidcs