https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86893

            Bug ID: 86893
           Summary: implement F202x .andthen. / .orelse. operators
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: janus at gcc dot gnu.org
  Target Milestone: ---

The .and. / .or. operators in the current F2018 standard do not make any
guarantees about whether any of the arguments is required to be evaluated, or
is required to  be optimized out.

There are rumors that new "short-circuiting" operators might be part of an
upcoming F202x standard. Those could be named .andthen., .andelse., .orelse. or
similar. Alternatively one could use C-style operators (&& and ||).

The new operators would be guaranteed to do left-to-right short-circuiting,
i.e. the second operand will not be evaluated if the value of the first one
already determines the final result.

Consequently the old .and. / .or. operators would be guaranteed to *not* do
short-circuiting (or only in cases where it makes no difference).

Reply via email to