aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f9054
1 files changed, 54 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90 b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
new file mode 100644
index 000000000..9c232786d
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/equiv_4.f90
@@ -0,0 +1,54 @@
+ subroutine test1
+ character*8 c
+ character*2 d, f
+ dimension d(2), f(2)
+ character*4 e
+ equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4))
+ equivalence (c(6:6), f(2)(:))
+ d(1)='AB'
+ c='abcdefgh'
+ if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
+ if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
+ end subroutine test1
+ subroutine test2
+ equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4))
+ equivalence (c(6:6), f(2)(1:))
+ character*8 c
+ character*2 d, f
+ dimension d(2), f(2)
+ character*4 e
+ d(1)='AB'
+ c='abcdefgh'
+ if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
+ if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
+ end subroutine test2
+ subroutine test3
+ character*8 c
+ character*2 d, f
+ character*4 e
+ equivalence (c(1:1), d(1)(2:)), (c(3:5), e(2:4))
+ equivalence (c(6:6), f(2)(:1))
+ dimension d(2), f(2)
+ d(1)='AB'
+ c='abcdefgh'
+ if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
+ if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
+ end subroutine test3
+ subroutine test4
+ dimension d(2), f(2)
+ equivalence (c(1:1), d(1)(2:2)), (c(3:5), e(2:4))
+ equivalence (c(6:6), f(2)(1:2))
+ character*8 c
+ character*2 d, f
+ character*4 e
+ d(1)='AB'
+ c='abcdefgh'
+ if (c.ne.'abcdefgh'.or.d(1).ne.'Aa'.or.d(2).ne.'bc') call abort
+ if (e.ne.'bcde'.or.f(1).ne.'de'.or.f(2).ne.'fg') call abort
+ end subroutine test4
+ program main
+ call test1
+ call test2
+ call test3
+ call test4
+ end program main