Clause 19.3, Clarifications on definition of compilation unit
PROPOSAL
In clause 19.3, MODIFY the text as follows:
DELETE:
The exact mechanism for defining which
files constitute a compilation unit is tool specific. Two extreme cases
are:
1) All files make a single compilation
unit (in which case the declarations in the compilation-unit scope are
accessible anywhere within the design)
2) Each file is a separate compilation
unit (in which case the declarations in each compilation-unit scope are
accessible only within its corresponding file)
REPLACE WITH:
The exact mechanism for defining which files constitute a compilation unit is tool specific. However, compliant implementations shall have the same default behavior, and tools shall provide use models that allow both of the following cases:
1) All files on a given compilation command line make a single compilation unit (in which case the declarations within those files are accessible anywhere else within the constructs defined within those files).
2) Each file is a separate compilation unit (in which case the declarations in each compilation-unit scope are accessible only within its corresponding file)
DELETE:
The default is that each file is a
separate compilation unit.
REPLACE WITH:
The default definition of a compilation unit is defined in case 2) above, in which each file is a separate compilation unit.
DELETE:
A tool must also provide a mechanism
(such as a command line switch) that specifies that all of the files compiled
together are a single compilation unit. (Since this is
now enumerated as item 2) in the list above)