ISAC: IR2054

From: Chuck Swart <cswart@model.com>
Date: Thu Jan 06 2005 - 18:40:01 PST

One more new IR:

-------------BEGINNING OF IR----------------

VHDL Issue Number: 2054

Language_Version VHDL-2002
Classification Language Definition Problem
Summary Individ. assoc. rules for array formal are not valid
Relevant_LRM_Sections 3.2.1.1 Index constraints and discrete ranges
Related_Issues
Key_Words_and_Phrases individual association, unconstrained array formal
Authors_Name James Unterburger
Authors_Phone_Number 503.685.0860
Authors_Fax_Number 503.685.0921
Authors_Email_Address jamesu@model.com
Authors_Affiliation Model Technology
Authors_Address1 8005 SW Boeckman Road
Authors_Address2 Wilsonville, OR 97070
Authors_Address3

Current Status: Submitted

Superseded By:

------------------------
Date Submitted: 6 January 2005
Date Analyzed:
Author of Analysis:
Revision Number: 0
Date Last Revised:

Description of Problem
----------------------

The rules for determining the index ranges of an interface object (or
    member of an interface object) of an unconstrained array type and
    whose subelements are associated individually are given in
    3.2.1.1:
    
       The directions of the index ranges of the formal [interface
       object] are those of the base type of the formal; the high and
       low bounds of the index ranges are respectively determined from
       the maximum and minimum values of the indices given in the
       association elements corresponding to the formal.
    
    It is then further ("followup") stated that:
    
       If the index ranges for an interface object or member of an
       interface object are obtained from the corresponding
       association element (when associating in whole) or elements
       (when associating individually), then they are determined
       either by the actual part(s) or by the formal part(s) of the
       association element(s), depending upon the mode of the
       interface object, as follows:
    
       [For a formal of mode IN, INOUT, or LINKAGE, if the actual part
       includes no conversion function or type conversion; likewise
       for a formal of mode OUT, BUFFER, INOUT, or LINKAGE, if the
       formal part includes no conversion function or type conversion,
       then] the index ranges are obtained from the object {or value}
       denoted by the actual designator(s).
    
    This "followup" does not make sense for individual associations
    because the actual designators do not have a corresponding index
    range, they are instead elements of the formal's array type; the
    index range(s) are already known as coming "from the maximum and
    minimum values of the indices given in the association elements
    corresponding to the formal".
    
    Also, the requirement that the result type of a conversion
    function or type mark of a type conversion (if present on the
    formal and/or actual parts) be a constrained array subtype is not
    applicable for individual association elements because they
    represent elements of the formal's array type, which is not
    necessarily of an array type itself.
    
    
    

Proposed Resolution
-------------------

    1) Clarify that the direction of the base type of an array type is
       in fact the direction of the index subtype of the array type at
       a given index position.
    
    2) Remove the references to individual associations in the
       "followup" rules.
    
    3) Clarify what the requirements are for individual associations
       that have formal and/or actual parts that include conversion
       functions and/or type conversions.
    
    

VASG-ISAC Analysis & Rationale
------------------------------
TBD

VASG-ISAC Recommendation for IEEE Std 1076-2002
-----------------------------------------------
TBD

VASG-ISAC Recommendation for Future Revisions
---------------------------------------------
TBD

-------------END OF IR----------------
Received on Thu Jan 6 18:40:15 2005

This archive was generated by hypermail 2.1.8 : Thu Jan 06 2005 - 18:40:16 PST