! { dg-do run } ! { dg-options "-O" } ! PR 48412 - function elimination got temporary varibles in the wrong order. ! Test case contributed by Joost VandeVondele. INTEGER FUNCTION S1(m,ma,lx) INTEGER :: m,ma,lx IF (((m < 0).AND.(MODULO(ABS(ma-lx),2) == 1)).OR.& ((m > 0).AND.(MODULO(ABS(ma-lx),2) == 0))) THEN S1=1 ELSE S1=0 ENDIF END FUNCTION INTEGER :: s1 IF (S1(1,2,1).NE.0) CALL ABORT() END