J3/03-198 Date: August 1, 2003 To: J3 From: Dick Hendrickson Subject: mask-expr evaluated only once Robert Corbett asked whether or not a mask-expr is required to be evaluated in a WHERE such as WHERE ( (/ .TRUE., .TRUE. /) ) A = A + 1 ELSE WHERE (MASKF()) A = MAX END WHERE where an optimizing compiler might notice that the ELSEWHERE branch will never be executed. Page 149, line 13 of J3/03-007 say of the mask expression in ELSEWHERE statements "The mask-expression is evaluated only once." I think that's a mistake in the wording. It appears to be copied from 149:7 where it is correct. The intent is to not allow mask-exprs to be evaluated more than once to form the control mask and the pending control mask. I think the wording just missed the case where evaluation isn't needed at all. PROPOSAL: 149:13 Change "only once" to "at most once" 149:22 Change "only once" to "at most once"