! { dg-do compile } ! { dg-options "-fwhole-file" } ! Test the fix for the fourth problem in PR40011, where the ! entries were not resolved, resulting in a segfault. ! ! Contributed by Dominique d'Humieres ! program test interface function bad_stuff(n) integer :: bad_stuff (2) integer :: n(2) end function bad_stuff recursive function rec_stuff(n) result (tmp) integer :: n(2), tmp(2) end function rec_stuff end interface integer :: res(2) res = bad_stuff((/-19,-30/)) end program test recursive function bad_stuff(n) integer :: bad_stuff (2) integer :: n(2), tmp(2), ent = 0, sent = 0 save ent, sent ent = -1 entry rec_stuff(n) result (tmp) if (ent == -1) then sent = ent ent = 0 end if ent = ent + 1 tmp = 1 if(maxval (n) < 5) then tmp = tmp + rec_stuff (n+1) ent = ent - 1 endif if (ent == 1) then if (sent == -1) then bad_stuff = tmp + bad_stuff (1) end if ent = 0 sent = 0 end if end function bad_stuff