VHDL Issue Number: 1052 Classification: Language Definition Problem Language Version: VHDL-93 Summary: Rules for others in aggregates are incomplete Related Issues: 0247 Relevant LRM Sections: 7.3.2.2 Key Words and Phrases: Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1991/10/11 Author of Submission: Chuck Swart (edited by Bill Paulsen) Author's Affiliation: Mentor Graphics Corporation Author's Post Address: 8005 S.W. Boeckman Road Wilsonville, OR 97070-7777 Author's Phone Number: (503) 685-7000 Author's Fax Number: N/A Author's Net Address: chuck_swart@mentorg.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 ---------------------- (This IR supersedes IR 0247.) Consider the following VHDL code: architecture a of e is variable b : bit_vector(0 to 7); begin b(0 to 3) := (others => '0'); end a; In this code, is the use of OTHERS in an aggregate legal when the target is a slice? The LRM states: "The subtype of an array aggregate that has an OTHERS choice must be determinable from the context." That certainly appears to be the case here. However, the LRM then goes on to enumerate the cases in which an OTHERS may appear. The relevant case is: "... an OTHERS choice man only appear: ... 4. As a value expression in an assignment statement, where the target is a declared object, and the subtype of the target is a constrained array subtype (or subelement of such a declared object)." A slice is neither a declared object, nor does it have a subtype. Proposed Resolution ------------------- The LRM should allow this case. VASG-ISAC Analysis & Rationale ------------------------------ This appears to be an oversight in the LRM. VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- In Section 7.3.2.2, add a new item to the list where an array aggregate with an OTHERS may only appear: "10. As a value expression in an assignment statement, where the target is a slice of a declared object, or a slice of a subelement of a declared object." VASG-ISAC Recommendation for Future Revisions --------------------------------------------- Add the above language to the LRM.