VHDL Issue Number: 0177 Classification: Language Definition Problem Language Version: VHDL-87 Summary: VPI Issue 1 -- Can record names be static? Related Issues: 0094 Relevant LRM Sections: TBD Key Words and Phrases: static, record, name. Current Status: Superseded 1076-1993 Disposition: Closed (All Issues Completely Addressed) Disposition Rationale: Superseded by IR 0094 Superseded By: N/A ----------------------- Date Submitted: 1991/03/15 Author of Submission: J. R. Armstrong Author's Affiliation: Virginia Polytechnic Institute and State University Author's Post Address: Bradley Department of Electrical Engineering Virginia Polytechnic Institute and State University Blacksburg, VA 24061 Author's Phone Number: (703) 231-4723 Author's Fax Number: Author's Net Address: JRA@VTVM1.CC.VT.EDU ----------------------- Date Analyzed: 1991/11/21 Author of Analysis: Oz Levia Revision Number: $Revision: 1.11 $ Date Last Revised: $Date: 1995/08/04 01:45:13 $ Description of Problem ---------------------- Can record names be locally and globally static? Test File: ch04/s03/s3/s2/11040101.vhd (see next two pages) Comment : According to VASG #94 this test should be changed to Expect_Success. Issue #94 recommends adding record names to the list of constructs that can be locally static and globally static. Thus in this case, the construct M.B would be locally static and hence this test should be Expect_Success. -- ##4332B411481FF4332B114332B314332B32*************************************** --+ File: [SUITE.CH04.S03.S3.S2]11040101.VHD -- --+ Copyright (c) 1987, 1988 by CAD Language Systems, Inc. All rights reserve -- --+ LRM_version: IEEE Std. 1076-1987 -- --+ Subsets: -- --+ Description: -- --+ Test_point - (040332_110401) "[Every subelement of the explicitly declared -- interface object must be associated exactly once with an actual in the -- same association list,] Each such association element must identify the -- formal with a locally static name." -- --+ Test_objective -(1) Test that when an association list assigns subelements -- individually, that every element is must be a locally static name. In -- this test, the association list for the procedure P1 has p.a assigned to -- m.b which is not locally static. This should produce an error. -- This test should fail. -- --+ References: Secondary LRM Coverage: (040332_110101) -- (040332_110301) -- (040332_110302) -- --+ Instructions: None -- --+ Keywords: association list, formal, actual, subelement, procedure -- --+ Test_Results: Expect_failure. Output_checked. -- Approximate error message: "Subelements of an association list may only -- be locally static names." -- --+ Test_Type: Globally Static Semantic -- --+ History: Created MAT/CLSI 08-30-88 -- Modified CHC/VT 05-04-90 -- --+ Comments: CLSI-FILE: [000000.DECLARATIONS.OBJECTS.ASSNLISTS]13 -- Whether m.b is locally static or not is not explicitly -- explained in the LRM. This will be sent to VASG for -- clarification. -- -- *************************************************************************** package p13 is type rec_type is record a, b, c : integer; end record; procedure P1 (p : in rec_type; q: in integer; r: out integer); end p13; package body p13 is procedure P1 (p : in rec_type; q: in integer; r: out integer) is begin r := (p.a + p.b + p.c)/3 * q; end; end p13; entity e13 is port (m : in work.p13.rec_type); end e13; use work.p13.all; architecture a13 of e13 is begin process variable x : integer := 1; begin P1 (p.a => 1, p.b => m.b, p.c => 4, q => 13, r => x); -- Failure_here -- m.b is not locally static. end process; end a13; Proposed Resolution ------------------- TBD VASG-ISAC Analysis & Rationale ------------------------------ Superseded by IR 0094. VASG-ISAC Recommendation for IEEE Std 1076-1987 ----------------------------------------------- Use IR 0094. VASG-ISAC Recommendation for Future Revisions --------------------------------------------- See IR 0094.