1! { dg-do run } 2! { dg-options "-O2" } 3! Tests the fix PR29451, in which the negative size of the 4! automatic array 'jello' was not detected and the 5! runtime error: Attempt to allocate a negative amount of memory 6! resulted. 7! 8! Contributed by Philip Mason <pmason@ricardo.com> 9! 10program fred 11 call jackal (1, 0) 12 call jackal (2, 1) 13 call jackal (3, 0) 14end 15 16subroutine jackal (b, c) 17 integer :: b, c 18 integer :: jello(b:c), cake(1:2, b:c), soda(b:c, 1:2) 19 if (lbound (jello, 1) <= ubound (jello, 1)) call abort () 20 if (size (jello) /= 0) call abort () 21 22 if (.not.any(lbound (cake) <= ubound (cake))) call abort () 23 if (size (cake) /= 0) call abort () 24 25 if ((lbound (soda, 1) > ubound (soda, 1)) .and. & 26 (lbound (soda, 2) > ubound (soda, 2))) call abort () 27 if (size (soda) /= 0) call abort () 28 29end subroutine jackal 30