To: J3 J3/19-165r1 From: Steve Lionel Subject: State that RECURSIVE has no semantics Date: 2019-August-04 Reference: 18-007r1, 14-179r2 Introduction ------------ Fortran 2018 made procedures recursive by default, rendering the RECURSIVE prefix a no-op. The change (originated in paper 14-179r2) was to replace 12.6.2.1p3: "The RECURSIVE prefix-spec shall appear if any procedure defined by the subprogram directly or indirectly invokes itself or any other procedure defined by the subprogram." with (now 15.6.2.1p3): "The NON_RECURSIVE prefix-spec shall not appear if any procedure defined by the subprogram directly or indirectly invokes itself or any other procedure defined by the subprogram." However, this removed any mention in the normative text of what the RECURSIVE prefix meant if it was present. The introduction was amended to say that RECURSIVE was "advisory only", but this is not normative. In the next revision, normative words should be added to indicate that the RECURSIVE prefix has no semantics. (C1545 already prohibits RECURSIVE and NON_RECURSIVE from appearing together.) Edit to 18-007r1 ---------------- [317:38+, 15.6.2.1p3 Procedures defined by subprograms, General] Append to the end of 15.6.2.1p3 (in regular font): "The RECURSIVE prefix-spec, if it appears, is advisory only." ==END==