aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/st_function_1.f90
blob: b851a942e3d3d03e47c2d90615af74a5b8ccc5a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
! Check that character valued statement functions honour length parameters
program st_function_1
  character(8) :: foo
  character(15) :: bar
  character(6) :: p
  character (7) :: s
  foo(p) = p // "World"
  bar(p) = p // "World"
  
  ! Expression longer than function, actual arg shorter than dummy.
  call check (foo("Hello"), "Hello Wo") ! { dg-warning "Character length of actual argument shorter" }

  ! Expression shorter than function, actual arg longer than dummy.
  ! Result shorter than type
  s = "Hello"
  call check (bar(s), "Hello World    ")
contains
subroutine check(a, b)
  character (len=*) :: a, b

  if ((a .ne. b) .or. (len(a) .ne. len(b))) call abort ()
end subroutine
end program