To: J3 07-338 From: Van Snyder Subject: Referencing deferred binding via absent dummy argument Date: 2007 November 15 NUMBER: F03/0109 TITLE: Referencing deferred binding via absent dummy argument KEYWORDS: Type-bound procedure, deferred binding DEFECT TYPE: Erratum STATUS: J3 consideration in progress QUESTION: The intent was that it would be impossible to reference a deferred binding. However, it doesn't appear to me that this intent was achieved. Consider the following program program P type, abstract :: T contains procedure(sub), nopass, deferred :: deferred_proc end type T call sub contains subroutine Sub ( X ) class(t), optional :: X call x%deferred_proc end subroutine Sub end program P Is this a valid program? If not, what restriction of the standard does it violate? Since x%deferred_proc has the NOPASS attribute, this does not require the value of x (4.5.7) and thus is not a reference to x (2.5.6). Therefore, the first item in the second list in 12.4.1.2 (at [04-007:272:32-33]) does not prohibit this. ANSWER: This was not intended to be a valid program. A type-bound procedure shall not be invoked through an absent dummy argument. An edit is supplied to clarify this situation. EDITS: Insert after C1224 in subclause 12.4 (at [04-007: 266: 24]) ([07-007r3: 309: 11]): "The shall not be an undefined pointer, a disassociated pointer, an unallocated allocatable variable, or a dummy data object that is not present (12.4.1.6)." (This subsumes the edits for F03/0003 and F03/0004). SUBMITTED BY: Van Snyder HISTORY: 07-xxx m182 F03/0109 Submitted