From J.L.Schonfelder@liverpool.ac.uk Fri Jan  6 12:39:26 1995
Received: from mailhub.liverpool.ac.uk (mail.liv.ac.uk) by dkuug.dk with SMTP id AA10640
  (5.65c8/IDA-1.4.4j for <SC22WG5@dkuug.dk>); Fri, 6 Jan 1995 13:40:12 +0100
Received: from pop.liv.ac.uk by mail.liv.ac.uk with SMTP (PP);
          Fri, 6 Jan 1995 12:39:25 +0000
Date: Fri, 6 Jan 1995 12:39:26 GMT
From: Lawrie Schonfelder <J.L.Schonfelder@liverpool.ac.uk>
Subject: informal ballot of 17 defect responces
To: SC22WG5@dkuug.dk
Message-Id: <ECS9501061226A@liv.ac.uk>
Priority: Normal
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
X-Charset: ASCII
X-Char-Esc: 29

I vote YES on all of these except 100 "ASSOCIATED intrinsic and zero-sized 
objects". On this latter I vote NO.
I belive it to be entirely unreasonable and unhelpful to say in all 
circumstances that if the target is zero sized the answer is false.

Consider

REAL,POINTER::p1(:)
REAL,TARGET::a(1:10)
...
DO i=10,1,-1
...
p1=>a(1:i-1)
PRINT *, ASSOCIATED(p1,a(1:i-1))
....

I, and I believe most users would be positively astounded to have TRUE printed 
for every time through the loop except for the i=1 itteration.
I believe that if the descripter for the pointer and that of the target are 
equal then ASSOCIATED should return true. The only effect of one of the extent 
values in the descripter becoming zero should be that the corresponding stride 
value then becomes irrelevant. Obviously the pointer and target must have zero 
extent in the same dimension(s) and the same values for nonzero extents and 
strides in all other dimensions and the same base address.
This of course raises the question of

p1=>a(1:i-1)
PRINT *, ASSOCIATED(p1,a(2:i))

This will clearly produce False for all i>1, I contend that it should produce 
false for all i since the base address of the section in all cases is different.

The rule for all zero-sized objects is that they should behave as the obvious 
limiting case when one of the extents goes to zero. Behaviour should NOT be 
discontinuous. The proposed edits in 100 violate this rule.

Malcolm once provided what I thought was a good rule of thum.
ASSOCIATED(p,t) should return true if and only if you could notionally add a 
statement prior to the invocation 
p=>t without effecting the program.
--
Dr.J.L.Schonfelder
Director, Computing Services Dept.
The University of Liverpool, UK
e-mail J.L.Schonfelder@liv.ac.uk
phone: +44(51)794-3716
fax:   +44(51)794-3759



