1! { dg-do compile }
2! { dg-options "-fdump-tree-original" }
3!
4! PR38033 - size(a) was not stabilized correctly and so the expression was
5! evaluated twice outside the loop and then within the scalarization loops.
6!
7! Contributed by Thomas Bruel  <tmbdev@gmail.com>
8!
9program test
10   integer, parameter :: n = 100
11   real, pointer :: a(:),temp(:)  ! pointer or allocatable have the same effect
12   allocate(a(n), temp(n))
13   temp(1:size(a)) = a
14end program
15! { dg-final { scan-tree-dump-times "MAX_EXPR\[^\n\t\]+ubound\[^\n\t\]+lbound" 1 "original" } }
16! { dg-final { cleanup-tree-dump "original" } }
17