OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gfortran.fortran-torture/] [execute/] [entry_4.f90] - Diff between revs 303 and 338

Only display areas with differences | Details | Blame | View Log

Rev 303 Rev 338
! Test alternate entry points for functions when the result types
! Test alternate entry points for functions when the result types
! of all entry points don't match
! of all entry points don't match
        integer function f1 (a)
        integer function f1 (a)
        integer a, b
        integer a, b
        double precision e1
        double precision e1
        f1 = 15 + a
        f1 = 15 + a
        return
        return
        entry e1 (b)
        entry e1 (b)
        e1 = 42 + b
        e1 = 42 + b
        end function
        end function
        complex function f2 (a)
        complex function f2 (a)
        integer a
        integer a
        logical e2
        logical e2
        entry e2 (a)
        entry e2 (a)
        if (a .gt. 0) then
        if (a .gt. 0) then
          e2 = a .lt. 46
          e2 = a .lt. 46
        else
        else
          f2 = 45
          f2 = 45
        endif
        endif
        end function
        end function
        function f3 (a) result (r)
        function f3 (a) result (r)
        integer a, b
        integer a, b
        real r
        real r
        logical s
        logical s
        complex c
        complex c
        r = 15 + a
        r = 15 + a
        return
        return
        entry e3 (b) result (s)
        entry e3 (b) result (s)
        s = b .eq. 42
        s = b .eq. 42
        return
        return
        entry g3 (b) result (c)
        entry g3 (b) result (c)
        c = b + 11
        c = b + 11
        end function
        end function
        function f4 (a) result (r)
        function f4 (a) result (r)
        logical r
        logical r
        integer a, s
        integer a, s
        double precision t
        double precision t
        entry e4 (a) result (s)
        entry e4 (a) result (s)
        entry g4 (a) result (t)
        entry g4 (a) result (t)
        r = a .lt. 0
        r = a .lt. 0
        if (a .eq. 0) s = 16 + a
        if (a .eq. 0) s = 16 + a
        if (a .gt. 0) t = 17 + a
        if (a .gt. 0) t = 17 + a
        end function
        end function
        program entrytest
        program entrytest
        integer f1, e4
        integer f1, e4
        real f3
        real f3
        double precision e1, g4
        double precision e1, g4
        logical e2, e3, f4
        logical e2, e3, f4
        complex f2, g3
        complex f2, g3
        if (f1 (6) .ne. 21) call abort ()
        if (f1 (6) .ne. 21) call abort ()
        if (e1 (7) .ne. 49) call abort ()
        if (e1 (7) .ne. 49) call abort ()
        if (f2 (0) .ne. 45) call abort ()
        if (f2 (0) .ne. 45) call abort ()
        if (.not. e2 (45)) call abort ()
        if (.not. e2 (45)) call abort ()
        if (e2 (46)) call abort ()
        if (e2 (46)) call abort ()
        if (f3 (17) .ne. 32) call abort ()
        if (f3 (17) .ne. 32) call abort ()
        if (.not. e3 (42)) call abort ()
        if (.not. e3 (42)) call abort ()
        if (e3 (41)) call abort ()
        if (e3 (41)) call abort ()
        if (g3 (12) .ne. 23) call abort ()
        if (g3 (12) .ne. 23) call abort ()
        if (.not. f4 (-5)) call abort ()
        if (.not. f4 (-5)) call abort ()
        if (e4 (0) .ne. 16) call abort ()
        if (e4 (0) .ne. 16) call abort ()
        if (g4 (2) .ne. 19) call abort ()
        if (g4 (2) .ne. 19) call abort ()
        end
        end
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.