VHDL Issue Number: 1059 Classification: Language Definition Problem Language Version: VHDL-93 Summary: What is the allowed use of others in record aggregates? Related Issues: 0158 Relevant LRM Sections: 7.3.2.1 Key Words and Phrases: Records, aggregates, record aggregates, others, type, subtype, type mark Current Status: Submitted 1076-1993 Disposition: N/A Unknown Closed (All Issues Completely Addressed) Bugs Fixed, Enhancements Outstanding (No ISAC Issues) Superseded (ISAC Issues Outstanding) Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1991/03/13 Author of Submission: Paul Menchini Author's Affiliation: CAD Language Systems, Inc. Author's Post Address: P.O. Box 13036 Research Triangle Park, NC 27709-3036 Author's Phone Number: (919) 361-1913 Author's Fax Number: Author's Net Address: mench@clsi.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.6 $ Date Last Revised: $Date: 1995/05/15 21:26:37 $ Description of Problem ---------------------- Is the following VHDL fragment legal? type R is record F1: Bit_Vector (1 to 2); F2: Bit_Vector (1 to 4); end record; : : constant C: R := (others => "000"); The applicable LRM statement, sentence 3 in the only paragraph of Section 7.3.2.1 states: An element association with more than one choice, or with the choice others, is only allowed if the elements specified are all of the same type. (This problem is inherited from Ada, which uses the identical language in Section 4.3.1 of the Ada Reference Manual. To my knowledge, there is no Ada Issue (the equivalent of a VHDL Issue Report) concerning this problem.) The elements of the questionable aggregate are both of the same base type, but they are of different subtype. This example should probably be illegal, but whether it is hinges on a larger question: What does the term "type" mean in the LRM? There are four choices: (1) "Type" means "base type" (the semantic concept). (2) "Type" means "subtype" (the semantic concept). (3) "Type" means "type mark" (the syntactic element). (4) "Type" means "subtype indication" (the syntactic element). I believe that there are places in the LRM where "type" is used in all four contexts. Proposed Resolution ------------------- Change the word "type" to "subtype" in the quoted sentence. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD