From owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org  Wed Aug 29 16:18:54 2012
Return-Path: <owner-sc22wg5+sc22wg5-dom8=www.open-std.org@open-std.org>
X-Original-To: sc22wg5-dom8
Delivered-To: sc22wg5-dom8@www.open-std.org
Received: by www.open-std.org (Postfix, from userid 521)
	id 9AE6E356913; Wed, 29 Aug 2012 16:18:54 +0200 (CEST)
Delivered-To: sc22wg5@open-std.org
Received: from e5.ny.us.ibm.com (e5.ny.us.ibm.com [32.97.182.145])
	by www.open-std.org (Postfix) with ESMTP id 8B2EE3568F8
	for <sc22wg5@open-std.org>; Wed, 29 Aug 2012 16:18:52 +0200 (CEST)
Received: from /spool/local
	by e5.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted
	for <sc22wg5@open-std.org> from <cdchen@ca.ibm.com>;
	Wed, 29 Aug 2012 10:18:50 -0400
Received: from d01dlp01.pok.ibm.com (9.56.250.166)
	by e5.ny.us.ibm.com (192.168.1.105) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted;
	Wed, 29 Aug 2012 10:18:47 -0400
Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147])
	by d01dlp01.pok.ibm.com (Postfix) with ESMTP id 9B35538C804D
	for <sc22wg5@open-std.org>; Wed, 29 Aug 2012 10:18:46 -0400 (EDT)
Received: from d01av05.pok.ibm.com (d01av05.pok.ibm.com [9.56.224.195])
	by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q7TEIgUM28770558
	for <sc22wg5@open-std.org>; Wed, 29 Aug 2012 10:18:42 -0400
Received: from d01av05.pok.ibm.com (loopback [127.0.0.1])
	by d01av05.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q7TEIgo7031383
	for <sc22wg5@open-std.org>; Wed, 29 Aug 2012 10:18:42 -0400
Received: from d25ml04.torolab.ibm.com (d25ml04.torolab.ibm.com [9.26.29.97])
	by d01av05.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id q7TEIfsg031378
	for <sc22wg5@open-std.org>; Wed, 29 Aug 2012 10:18:42 -0400
To: WG5 <sc22wg5@open-std.org>
MIME-Version: 1.0
Subject: Ballot 3 on Fortran 2008	interpretations
X-KeepSent: 851BE5CB:B4756BDD-85257A69:004E3489;
 type=4; name=$KeepSent
X-Mailer: Lotus Notes Release 8.5.1FP5 SHF29 November 12, 2010
Message-ID: <OF851BE5CB.B4756BDD-ON85257A69.004E3489-85257A69.004E9DB0@ca.ibm.com>
From: Daniel C Chen <cdchen@ca.ibm.com>
Date: Wed, 29 Aug 2012 10:18:39 -0400
X-MIMETrack: Serialize by Router on D25ML04/25/M/IBM(Release 8.5.2FP2|March 22, 2011) at
 08/29/2012 10:18:41,
	Serialize complete at 08/29/2012 10:18:41
Content-Type: multipart/alternative; boundary="=_alternative 004E9DAC85257A69_="
X-Content-Scanned: Fidelis XPS MAILER
x-cbid: 12082914-5930-0000-0000-00000B5FD13F
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

This is a multipart message in MIME format.
--=_alternative 004E9DAC85257A69_=
Content-Type: text/plain; charset="US-ASCII"

My vote is as follows:


Yes  No Number     Title
-Y-  ---  F03/0017   Dummy procedure pointers and PRESENT
-Y-  ---  F03/0018   Multiple identical specific procedures in
                      type-bound generic interfaces
-Y-  ---  F03/0019   Multiple identical specific procedures in
                      generic interface blocks
-Y-  ---  F03/0021   What kind of token is a stop code?
-Y-  ---  F03/0046   Unlimited polymorphic pointers in
                      common blocks
-Y-  ---  F03/0053   The BIND attribute for C_PTR and C_FUNPTR
-Y-  ---  F03/0065   Relational equivalence
-Y-  ---  F03/0084   IEEE_SET_ROUNDING_MODE in a subroutine
-Y-  ---  F03/0096   Can a read statement change the unit value?
---  -N-  F03/0103   Restrictions on dummy arguments not present for
                      polymorphic type or parameterized derived type
-Y-  ---  F03/0116   indistinguishable specifics for a generic
                      interface with use association
-Y-  ---  F03/0118   Are lower bounds of assumed-shape arrays assumed?
-Y-  ---  F03/0120   When are parameterized sequence types the same
                      type?
-Y-  ---  F03/0121   Precise FP semantics of the REAL intrinsic
-Y-  ---  F08/0004   Is TARGET argument of ASSOCIATED a pointer or
                      nonpointer dummy?
-Y-  ---  F08/0008   IEEE exceptions for intrinsic functions
-Y-  ---  F08/0031   PURE INTENT(OUT) finalization
-Y-  ---  F08/0032   PURE FUNCTION result finalization
-Y-  ---  F08/0038   Are pointless restrictions on DIM arguments
                      intended?
-Y-  ---  F08/0042   SOURCE= questions


The reason for the 'NO' vote on F03/0103 is because:

Passing a polymorphic optional argument that is not present to a 
non-polymorphic optional dummy should be disallowed as it requires 
de-referencing the descriptor. There are rules that disallow passing a 
pointer dummy or allocatable dummy that is not present as actual argument 
to a nonpointer nonallocatable optional dummy (12.5.2.12p3 (7)/(8)). There 
should be a similar rule for prohibit passing a polymorphic optional 
argument that is not present to a non-polymorphic optional dummy. I am 
aware that adding a runtime checking can solve the problem, but it will 
impact the performance. 

Daniel

XL Fortran Development - IBM Toronto Software Lab
Phone: 905-413-3056 
Tie: 969-3056 
Email: cdchen@ca.ibm.com
http://www.ibm.com/software/awdtools/fortran/xlfortran
--=_alternative 004E9DAC85257A69_=
Content-Type: text/html; charset="US-ASCII"

<tt><font size=2>My vote is as follows:</font></tt>
<br>
<br>
<br><tt><font size=2>Yes &nbsp;No Number &nbsp; &nbsp; Title<br>
-Y- &nbsp;--- &nbsp;F03/0017 &nbsp; Dummy procedure pointers and PRESENT<br>
-Y- &nbsp;--- &nbsp;F03/0018 &nbsp; Multiple identical specific procedures
in<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;type-bound generic interfaces<br>
-Y- &nbsp;--- &nbsp;F03/0019 &nbsp; Multiple identical specific procedures
in<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;generic interface blocks<br>
-Y- &nbsp;--- &nbsp;F03/0021 &nbsp; What kind of token is a stop code?<br>
-Y- &nbsp;--- &nbsp;F03/0046 &nbsp; Unlimited polymorphic pointers in<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;common blocks<br>
-Y- &nbsp;--- &nbsp;F03/0053 &nbsp; The BIND attribute for C_PTR and C_FUNPTR<br>
-Y- &nbsp;--- &nbsp;F03/0065 &nbsp; Relational equivalence<br>
-Y- &nbsp;--- &nbsp;F03/0084 &nbsp; IEEE_SET_ROUNDING_MODE in a subroutine<br>
-Y- &nbsp;--- &nbsp;F03/0096 &nbsp; Can a read statement change the unit
value?<br>
--- &nbsp;-N- &nbsp;F03/0103 &nbsp; Restrictions on dummy arguments not
present for<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;polymorphic type or parameterized derived type<br>
-Y- &nbsp;--- &nbsp;F03/0116 &nbsp; indistinguishable specifics for a generic<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;interface with use association<br>
-Y- &nbsp;--- &nbsp;F03/0118 &nbsp; Are lower bounds of assumed-shape arrays
assumed?<br>
-Y- &nbsp;--- &nbsp;F03/0120 &nbsp; When are parameterized sequence types
the same<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;type?<br>
-Y- &nbsp;--- &nbsp;F03/0121 &nbsp; Precise FP semantics of the REAL intrinsic<br>
-Y- &nbsp;--- &nbsp;F08/0004 &nbsp; Is TARGET argument of ASSOCIATED a
pointer or<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;nonpointer dummy?<br>
-Y- &nbsp;--- &nbsp;F08/0008 &nbsp; IEEE exceptions for intrinsic functions<br>
-Y- &nbsp;--- &nbsp;F08/0031 &nbsp; PURE INTENT(OUT) finalization<br>
-Y- &nbsp;--- &nbsp;F08/0032 &nbsp; PURE FUNCTION result finalization<br>
-Y- &nbsp;--- &nbsp;F08/0038 &nbsp; Are pointless restrictions on DIM arguments<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;intended?<br>
-Y- &nbsp;--- &nbsp;F08/0042 &nbsp; SOURCE= questions<br>
</font></tt>
<br>
<br><font size=2 face="sans-serif">The reason for the 'NO' vote on F03/0103
is because:</font>
<br>
<br><font size=2 face="sans-serif">Passing a polymorphic optional argument
that is not present to a non-polymorphic optional dummy should be disallowed
as it requires de-referencing the descriptor. There are rules that disallow
passing a pointer dummy or allocatable dummy that is not present as actual
argument to a nonpointer nonallocatable optional dummy (12.5.2.12p3 (7)/(8)).
There should be a similar rule for prohibit passing a polymorphic optional
argument that is not present to a non-polymorphic optional dummy. I am
aware that adding a runtime checking can solve the problem, but it will
impact the performance. </font>
<br>
<br><font size=2 face="sans-serif">Daniel</font>
<br>
<br><font size=2 face="sans-serif">XL Fortran Development - IBM Toronto
Software Lab<br>
Phone: 905-413-3056 &nbsp; <br>
Tie: 969-3056 &nbsp; <br>
Email: cdchen@ca.ibm.com<br>
</font><a href=http://www.ibm.com/software/awdtools/fortran/xlfortran><font size=2 face="sans-serif">http://www.ibm.com/software/awdtools/fortran/xlfortran</font></a>
--=_alternative 004E9DAC85257A69_=--

