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