From 1bc5aee63eb72b341f506ad058502cd0361f0d10 Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Tue, 25 Mar 2014 22:37:19 -0700 Subject: Initial checkin of GCC 4.9.0 from trunk (r208799). Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba --- gcc-4.9/gcc/testsuite/gfortran.dg/coarray_18.f90 | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 gcc-4.9/gcc/testsuite/gfortran.dg/coarray_18.f90 (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/coarray_18.f90') diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/coarray_18.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/coarray_18.f90 new file mode 100644 index 000000000..474e9391e --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gfortran.dg/coarray_18.f90 @@ -0,0 +1,39 @@ +! { dg-do compile } +! { dg-options "-fcoarray=single" } +! +! Prevent ICE when exceeding the maximal number of allowed +! dimensions (normal + codimensions). +! +! Fortran 2008 allows (co)arrays with 15 ranks +! Currently, gfortran only supports 7, cf. PR 37577 +! Thus, the program is valid Fortran 2008 ... +! +! See also general coarray PR 18918 +! +! Test case taken from Leibniz-Rechenzentrum (LRZ)'s +! fortran_tests with thanks to Reinhold Bader. +! + +program ar + implicit none + integer :: ic(2)[*] + integer :: id(2,2)[2,*] + integer :: ie(2,2,2)[2,2,*] + integer :: ig(2,2,2,2)[2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: ih(2,2,2,2,2)[2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: ij(2,2,2,2,2,2)[2,2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: ik(2,2,2,2,2,2,2)[2,2,2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: il[2,2,2,2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: im[2,2,2,2,2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: in[2,2,2,2,2,2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + integer :: io[2,2,2,2,2,2,2,2,2,2,*] ! { dg-error "has more than 7 dimensions" } + real :: x2(2,2,4)[2,*] + complex :: c2(4,2)[2,*] + double precision :: d2(1,5,9)[2,*] + character(len=1) :: ch2(2)[2,*] + character(len=2) :: ch22(-5:4)[2,*] + logical :: l2(17)[2,*] + if (this_image() == 1) then + write(*,*) 'OK' + end if +end program -- cgit v1.2.3