iSAC: new IR2087 Ambiguous rule for type of an alias declaration

From: Chuck Swart <cswart_at_.....>
Date: Wed Feb 15 2006 - 11:32:27 PST
We'll go over this at the next meeting.
Chuck


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

VHDL Issue Number:        

Language_Version          VHDL-2002
Classification            Language Definition Problem
Summary                   Ambiguous rule for type of an alias declaration
Relevant_LRM_Sections     4.3.3.1 Object aliases
Related_Issues            
Key_Words_and_Phrases     object alias
Authors_Name              Peter Ashenden
Authors_Phone_Number      +61 414 709 106
Authors_Fax_Number        
Authors_Email_Address     peter@ashenden.com.au
Authors_Affiliation       Ashenden Designs
Authors_Address1          
Authors_Address2          
Authors_Address3          

Current Status:           Submitted

Superseded By:

------------------------
Date Submitted:           9 February 2006
Date Analyzed:
Author of Analysis:
Revision Number:          0
Date Last Revised:

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

In 4.3.3.1, page 69, item (b) includes the following:
    
    The base type of the name specified in an alias declaration must
    be the same as the base type of the type mark in the subtype
    indication (if the subtype indication is present); this type must
    not be a multidimensional array type.
    
    The referent of the word "this" is ambiguous. Does it refer to
    the base type of the name? If so, then any alias of a
    multidimensional array object is illegal.
    
    Alternatively, does it refer to the base type of the type mark of
    the subtype indication (if present)? If so, the following would be
    illegal:
    
      type T is array(1 to 3, 1 to 3) of integer;
      variable V : T;
      alias A:T is V;
    
    whereas the following would be legal:
    
      alias A is V;
    
    In either case, there appears to be no rationale for proscribing a
    multidimensional type. Was that intended in general, or only in
    the case of an alias of a slice?
    
    Further, in item (b)(1), it says:
    
      If the alias designator denotes a slice of an object, then the
      subtype of the object is viewed as if it were of the subtype
      specified by the slice.
    
    Presumably this should be "..., then the slice of the object is
    viewed as if it were of the subtype specified by the slice." In
    call cases of object aliases, the viewing that goes on is of the
    object, not of a subtype.
    

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

Remove the rule requiring the base type not to be a multidimensional
array type.
    
Change the incorrect use of the word "subtype" to "slice".

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 Wed Feb 15 11:32:32 2006

This archive was generated by hypermail 2.1.8 : Wed Feb 15 2006 - 11:32:40 PST