! { dg-do compile } ! { dg-options "-fdump-tree-original" } ! ! Ensure that for zero-sized array, nonzero memory is allocated ! type t end type t type(t), allocatable :: x, y(:) x = t() y = [ t :: ] if (.not. allocated (x)) call abort () if (.not. allocated (y)) call abort () end ! { dg-final { scan-tree-dump "x = \\(struct t .\\) __builtin_malloc \\(1\\);" "original" } } ! { dg-final { scan-tree-dump "y.data = \\(void . restrict\\) __builtin_malloc \\(1\\);" "original" } } ! { dg-final { cleanup-tree-dump "original" } }