1! { dg-do run }
2! From PR 19673 : We didn't dereference the result from POINTER
3! functions with a RESULT clause
4program ret_ptr
5  if (foo(99) /= bar(99)) call abort ()
6contains
7  function foo (arg) result(ptr)
8    integer :: arg
9    integer, pointer :: ptr
10    allocate (ptr)
11    ptr = arg
12  end function foo
13  function bar (arg)
14    integer :: arg
15    integer, pointer :: bar
16    allocate (bar)
17    bar = arg
18  end function bar
19end  program ret_ptr
20