To: J3 J3/14-191 From: Van Snyder Subject: Delete and Range of the DO construct Date: 2014 June 16 References: 14-007r1, 14-166 1. Introduction =============== In 14-166, Malcolm recommended to delete the syntax term and the "Range of the DO construct" subclause. We can't delete the "Range of the DO construct" subclause without replacing references to "the range of the loop" with "the of the loop" in several places, and prohibiting branching to the from outwith the construct. 2. Edits to 14-007r1 ==================== [174:14 R813] Replace "" with "". [175:5 R823] Delete the syntax rule. IF ( neither section 3 nor section 4 below is done ) THEN [175:15-17 8.1.6.3p1] Replace the paragraph: "The range of a DO construct is its ." It is permitted to branch to the of a DO construct only from within that DO construct." END IF [176:3 8.1.6.5.1p2] Replace "" with " of the ". 3. Replacing "range" ==================== [174:9 8.1.6.1p3] Replace "" with "". IF ( section 4 below is not done ) THEN [175:15-17 8.1.6.3p1] Replace the paragraph: "It is permitted to branch to the of a DO construct only from within that DO construct." END IF [176:34 8.1.6.5.3p1(2)] Replace "" with "". [177:5-6 8.1.6.5.3p3] Replace "range" with "" twice. [177:8 8.1.6.5.4p1] Replace "" with "". [177:8-9 8.1.6.5.4p1] Replace " of the loop" with " of the construct". [177:11-12 C822] Replace "range" with "" twice. [177:29,32,33 8.1.6.5.5p1] Replace "range" with "" thrice. [178:23+5 Note 8.11] Replace "range" with "". [179:0+12 Note 8.14] Replace "range" with "". [179:0+25 Note 8.15] Replace "range" with "". [186:5 C846] Replace "range" with "". 4. Constraining against branching to from outwith its construct ======================================================== Subclause 8.1.6.3 "Range of the DO construct" prohibits branching to an statement from outwith the construct, but it's not a constraint. Prohibitions against branching to an , , , or are not constraints, and are not in the subclause on branching. There is no prohibition against branching to an or from outwith its construct (nor is there explicit permission for it, as there once was for END IF). [25:10+ 1.6.3p1+] Within the list of incompatibilities with Fortran 2008, add a list item: " o Fortran 2008 did not prohibit branching to an or from outwith its construct. \Thisstandard prohibits branching thereto." {forsooth} [187:12+ 8.2.1p1+] Insert a constraint: "C847a If a branch target statement is an , , , , , , or , the branching statement that references the label of that branch target statement shall be within the construct completed by that branch target statement." [170:35 8.1.3.2p3] Delete the paragraph. IF ( Section 3 above is done ) THEN [175:14-17 8.1.6.3] Delete the "Range of the DO construct" subclause because the term "range" is no longer needed, and the rest of it doesn't say anything not already said in subclause 8.1.2 and by the new constraint C847a. ELSE [175:15-17 8.1.6.3p1] Replace the paragraph: "The range of a DO construct is its ." END IF [180:29-30 8.1.7.1p2] Delete the paragraph. [182:33 8.1.8.2p3] Delete the paragraph. [185:33 8.1.9.2p9] Delete the paragraph.