(j3.2006) Was it necessary to describe the selector in such a roundabout way?

Van Snyder Van.Snyder
Wed Apr 4 21:48:45 EDT 2012


R805 says the <selector> in an ASSOCIATE construct is an <expr> or
<variable>.

In turn, R602 says <variable> is a <designator> or <expr>.

C804 says the <expr> in R805 shall not be a variable.  This precludes
having two ways to evaluate an expression and end up with a pointer
(i.e., the <expr> in R801 and the <expr> in R602).

C801 says that certain kinds of <selector> cannot appear in a
variable-definition context.

It would seem to be easier to say that a <selector> is an <expr> in
R804, and say in C801 that if the <selector> is not permitted to appear
in a variable-definition context, then the <associate-name> shall not
appear in a variable-definition context.  This would also cover the case
of the selector being an intent(in) dummy argument (which we don't cover
now), or a named constant.  C804 would then not be necessary.





More information about the J3 mailing list