summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/reshape_empty_1.f03
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/reshape_empty_1.f03')
-rw-r--r--gcc/testsuite/gfortran.dg/reshape_empty_1.f0320
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" } }