OSDN Git Service

Add NIOS2 support. Code from SourceyG++.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gfortran.dg / altreturn_3.f90
1 ! { dg-do run }
2 ! { dg-options "-std=legacy" }
3 !
4 ! Tests the fix for PR30236, which was due to alternate returns
5 ! in generic interfaces causing a segfault.  They now work
6 ! correctly.
7 !
8 ! Contributed by Brooks Moses <brooks@gcc.gnu.org>
9 !
10 module arswitch
11   implicit none
12   interface gen
13     module procedure with
14     module procedure without
15   end interface
16 contains
17   subroutine with(i,*)
18     integer i
19     if (i>0) then
20       i = -1
21       return 1
22     else
23       i = -2
24       return
25     end if
26   end subroutine
27   subroutine without()
28     return
29   end subroutine
30 end module
31
32 program test
33   use arswitch
34   implicit none
35   integer :: i = 0
36   call gen (i, *10)
37   if (i /= -2) call abort ()
38   i = 2
39   call gen (i, *20)
40  10 continue
41   call abort()
42  20 continue
43   if (i /= -1) call abort ()
44 end
45 ! { dg-final { cleanup-modules "arswitch" } }