diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/reshape_empty_1.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/reshape_empty_1.f03 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/reshape_empty_1.f03 b/gcc/testsuite/gfortran.dg/reshape_empty_1.f03 new file mode 100644 index 000000000..cac7e7360 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/reshape_empty_1.f03 @@ -0,0 +1,20 @@ +! { dg-do run } +! { dg-options "-fdump-tree-original" } +! +! PR fortran/38184 +! invariant RESHAPE not expanded if SOURCE is empty. +! +! Original program by James Van Buskirk + +integer, parameter :: N = 3 +integer, parameter :: A(N,N) = reshape([integer::],[N,N],reshape([1],[N+1],[2])) +integer, parameter :: K = N*A(2,2)+A(2,3) +integer :: B(N,N) = reshape([1,2,2,2,1,2,2,2,1],[3,3]) +integer :: i +i = 5 +if (any(A /= B)) call abort +if (K /= i) call abort +end + +! { dg-final { scan-tree-dump-times "\\\{1, 2, 2, 2, 1, 2, 2, 2, 1\\\}" 2 "original" } } +! { dg-final { cleanup-tree-dump "original" } } |