J3/14-126 To: J3 From: Van Snyder Subject: UTI concerning undefinition Date: 2014 February 12 Reference: 14-106 14-106 observed that the interp concerning undefinition that resulted in the current text at 16.6.6p1(1) appears not to be completely correct. [14-007:461:41+] Insert a UTI This still isn't quite right. 16.6.6p1(1) doesn't cover the case of, say, a default integer associated with half of a double precision variable. If the integer becomes defined, the double precision variable ought to become undefined. The first sentence in 16.6.6p1(1) only covers the totally-associated case. The second sentence of 16.6.6p1(1) doesn't allow the case of a double precision pointer or associate name that is totally associated with a double precision subobject of another object, but only partially associated with the object. Consider, for example: double precision, pointer :: D complex(kind(0.0d0)), target :: X = ( 1.0, 2.0 ) d => x%re d = 42.0d0 16.6.6p1(1) says this results in X becoming undefined. This is clearly not what we want. The same problem occurs with derived-type objects.