VHDL Issue Number: 1092 Classification: Language Definition Problem Language Version: VHDL-93 Summary: Must a selected name in a use clause denote anything? Related Issues: Relevant LRM Sections: 10.4 Key Words and Phrases: use clause, selected name, .all Current Status: Submitted 1076-1993 Disposition: N/A Disposition Rationale: N/A Superseded By: N/A ----------------------- Date Submitted: 1994/08/02 Author of Submission: Daniel S. Barclay for Paul Graham Author's Affiliation: COMPASS Design Automation Author's Post Address: 5457 Twin Knolls Rd., Suite 100 Columbia, MD 21045 USA Author's Phone Number: 410-992-5700 Author's Fax Number: 410-992-3536 Author's Net Address: daniel@compass-da.com ----------------------- Date Analyzed: TBD Author of Analysis: TBD Revision Number: $Revision: 1.6 $ Date Last Revised: $Date: 1995/05/15 20:07:17 $ Description of Problem ---------------------- It is not clear whether it is an error if the selected name in a use clause does not denote any declarations. For example, is the use clause in the following example legal?: package P1 is function f(a, b : INTEGER) return INTEGER; end; use WORK.Empty.g; entity User is end; The second text paragraph in section 10.4 begins: Each selected name in a use clause identifies one or more declarations that will potentially become directly visible. The wording "one or more" implies, though only weakly, that the name must denote something. However, this implication would make the following code illegal: package Empty is end; use WORK.Empty.all; entity User is end; Package Empty contains no declarations, so the selected name WORK.Empty.all identifies zero declarations (according to the third sentence in the paragraph from section 10.4). This example should not be illegal, so the above impli- cation is inappropriate. The next sentence says: If the suffix of the selected name is a simple name, character literal, or operator symbol, then the selected name identifies only the declaration(s) of that simple name, character literal, or operator symbol contained within the package or library denotes by the prefix of the selected name. Since this doesn't say "if any" near "declaration(s)", it is reasonable to infer that it is an error if the name does not denote any declarations. However, an explicit statement would be much clearer and more definite. Proposed Resolution ------------------- Correct the wording to cover the case of a selected name that has a suffix of "all" and that denotes zero declarations. Especially because of that correction, specify that a selected name other than one with a suffix of "all" must denote at least one declaration. VASG-ISAC Analysis & Rationale ------------------------------ TBD VASG-ISAC Recommendation for IEEE Std 1076-1993 ----------------------------------------------- TBD VASG-ISAC Recommendation for Future Revisions --------------------------------------------- TBD