1! { dg-do run }
2! { dg-options "-O" }
3! PR 48412 - function elimination got temporary varibles in the wrong order.
4! Test case contributed by Joost VandeVondele.
5
6INTEGER FUNCTION S1(m,ma,lx)
7INTEGER :: m,ma,lx
8
9IF (((m < 0).AND.(MODULO(ABS(ma-lx),2) == 1)).OR.&
10    ((m > 0).AND.(MODULO(ABS(ma-lx),2) == 0))) THEN
11   S1=1
12ELSE
13   S1=0
14ENDIF
15
16END FUNCTION
17
18INTEGER :: s1
19IF (S1(1,2,1).NE.0) CALL ABORT()
20END
21