You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fortran requires that a DO construct with a construct
name end with an END DO statement bearing the same name.
This is true even if the DO construct begins with a
label DO statement; e.g., "constrName: do 10 j=1,10" must
end with "10 end do constrName".
The compiler presently basically ignores construct names
that appear on label DO statements, because only non-label
DO statements can be parsed as DO constructs. This causes us to
miss some errors, and (worse) breaks the usage of the construct
name on CYCLE and EXIT statements.
To fix this, this patch changes the parse tree and parser so
that a DO construct name on a putative label DO statement
causes it to be parsed as a "non-label" DO statement... with
a label. Only true old-style labeled DO statements without
construct names are now parsed as such.
I did not change the class name NonLabelDoStmt -- it's widely
used across the front-end, and is the name of a production in
the standard's grammar. But now it basically means DoConstructDoStmt.
Fixes#67283.
0 commit comments