blob: 0d655b53883ba25ca0738227ad3b5ad038fb7cfc [file] [log] [blame]
! { dg-do run }
! { dg-options "-fdump-tree-original" }
!
! Check that copy loops to ensure contiguity of the result of an elemental
! array-valued expression are generated properly after fixing pr103390,
! and that it does not ICE.
program p
integer, pointer :: z(:)
integer :: a(3) = [1, 2, 3];
integer :: b(3) = [4, 5, 6];
call s(a + b);
contains
subroutine s(x) bind(c)
integer, contiguous :: x(:)
end
end
! We only expect one loop before the call, to fill in the contiguous
! temporary. No copy-out is needed since the temporary is effectively
! an rvalue.
! { dg-final { scan-tree-dump-times "while \\(1\\)" 1 "original" } }
! It should not emit code to check the contiguous property.
! { dg-final { scan-tree-dump-not "contiguous\\.\[0-9\]+" "original" } }