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.0rc2/] [gcc/] [testsuite/] [gfortran.fortran-torture/] [execute/] [entry_7.f90] - Diff between revs 303 and 384

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 303 Rev 384
! Test alternate entry points for functions when the result types
! Test alternate entry points for functions when the result types
! of all entry points match
! of all entry points match
        function f1 (a)
        function f1 (a)
        integer a, b
        integer a, b
        integer, pointer :: f1, e1
        integer, pointer :: f1, e1
        allocate (f1)
        allocate (f1)
        f1 = 15 + a
        f1 = 15 + a
        return
        return
        entry e1 (b)
        entry e1 (b)
        allocate (e1)
        allocate (e1)
        e1 = 42 + b
        e1 = 42 + b
        end function
        end function
        function f2 ()
        function f2 ()
        real, pointer :: f2, e2
        real, pointer :: f2, e2
        entry e2 ()
        entry e2 ()
        allocate (e2)
        allocate (e2)
        e2 = 45
        e2 = 45
        end function
        end function
        function f3 ()
        function f3 ()
        double precision, pointer :: f3, e3
        double precision, pointer :: f3, e3
        entry e3 ()
        entry e3 ()
        allocate (f3)
        allocate (f3)
        f3 = 47
        f3 = 47
        end function
        end function
        function f4 (a) result (r)
        function f4 (a) result (r)
        double precision a, b
        double precision a, b
        double precision, pointer :: r, s
        double precision, pointer :: r, s
        allocate (r)
        allocate (r)
        r = 15 + a
        r = 15 + a
        return
        return
        entry e4 (b) result (s)
        entry e4 (b) result (s)
        allocate (s)
        allocate (s)
        s = 42 + b
        s = 42 + b
        end function
        end function
        function f5 () result (r)
        function f5 () result (r)
        integer, pointer :: r, s
        integer, pointer :: r, s
        entry e5 () result (s)
        entry e5 () result (s)
        allocate (r)
        allocate (r)
        r = 45
        r = 45
        end function
        end function
        function f6 () result (r)
        function f6 () result (r)
        real, pointer :: r, s
        real, pointer :: r, s
        entry e6 () result (s)
        entry e6 () result (s)
        allocate (s)
        allocate (s)
        s = 47
        s = 47
        end function
        end function
        program entrytest
        program entrytest
        interface
        interface
        function f1 (a)
        function f1 (a)
        integer a
        integer a
        integer, pointer :: f1
        integer, pointer :: f1
        end function
        end function
        function e1 (b)
        function e1 (b)
        integer b
        integer b
        integer, pointer :: e1
        integer, pointer :: e1
        end function
        end function
        function f2 ()
        function f2 ()
        real, pointer :: f2
        real, pointer :: f2
        end function
        end function
        function e2 ()
        function e2 ()
        real, pointer :: e2
        real, pointer :: e2
        end function
        end function
        function f3 ()
        function f3 ()
        double precision, pointer :: f3
        double precision, pointer :: f3
        end function
        end function
        function e3 ()
        function e3 ()
        double precision, pointer :: e3
        double precision, pointer :: e3
        end function
        end function
        function f4 (a)
        function f4 (a)
        double precision a
        double precision a
        double precision, pointer :: f4
        double precision, pointer :: f4
        end function
        end function
        function e4 (b)
        function e4 (b)
        double precision b
        double precision b
        double precision, pointer :: e4
        double precision, pointer :: e4
        end function
        end function
        function f5 ()
        function f5 ()
        integer, pointer :: f5
        integer, pointer :: f5
        end function
        end function
        function e5 ()
        function e5 ()
        integer, pointer :: e5
        integer, pointer :: e5
        end function
        end function
        function f6 ()
        function f6 ()
        real, pointer :: f6
        real, pointer :: f6
        end function
        end function
        function e6 ()
        function e6 ()
        real, pointer :: e6
        real, pointer :: e6
        end function
        end function
        end interface
        end interface
        double precision d
        double precision d
        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 () .ne. 45) call abort ()
        if (f2 () .ne. 45) call abort ()
        if (e2 () .ne. 45) call abort ()
        if (e2 () .ne. 45) call abort ()
        if (f3 () .ne. 47) call abort ()
        if (f3 () .ne. 47) call abort ()
        if (e3 () .ne. 47) call abort ()
        if (e3 () .ne. 47) call abort ()
        d = 17
        d = 17
        if (f4 (d) .ne. 32) call abort ()
        if (f4 (d) .ne. 32) call abort ()
        if (e4 (d) .ne. 59) call abort ()
        if (e4 (d) .ne. 59) call abort ()
        if (f5 () .ne. 45) call abort ()
        if (f5 () .ne. 45) call abort ()
        if (e5 () .ne. 45) call abort ()
        if (e5 () .ne. 45) call abort ()
        if (f6 () .ne. 47) call abort ()
        if (f6 () .ne. 47) call abort ()
        if (e6 () .ne. 47) call abort ()
        if (e6 () .ne. 47) call abort ()
        end
        end
 
 

powered by: WebSVN 2.1.0

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