08-241
To: J3
From: Michael Ingrassia
Subject: Public Comment J32027
Date: 2008 July 08
----------------------------------------------------------------------
Commenter's Subject was "definition is poorly defined"
Consider the program:
PROGRAM MAIN
TYPE T1
SEQUENCE
INTEGER I, J
END TYPE
TYPE T2
SEQUENCE
INTEGER I, J
END TYPE
TYPE(T1) X, Y
EQUIVALENCE (I, X, Y)
X%J = 2
I = 1
PRINT *, I, X, Y
END
The assignment to the variable I causes I, X, and Y
to become defined (see items (1) and (15) of
Section 16.6.5). Therefore, according to item (1)
of Section 16.6.6, I, X, and Y become undefined.
Item (1) of Section 16.6.6 should be modified so that
it directly applies only to ultimate components. The
effect on aggregate types will then occur as is
appropriate because of the rules given in
Section 16.6.1.
----------------------------------------------------------------------