Changes are shown in red font.
Deletions are crossed out.
Editing or reviewing notes in green font.
Reviewing Notes
Version 1:
Refactored the locally static change from LCS 099
Details of Language Change
9.4.2 Locally static primaries
An expression is said to be locally static if and only if every operator in the expression denotes an implicitly defined operator or an operator defined in
one of the packages STD_LOGIC_1164, NUMERIC_BIT, NUMERIC_STD, NUMERIC_BIT_UNSIGNED, or NUMERIC_STD_UNSIGNED in library IEEE, and if every primary in the
expression is a locally static primary, where a locally static primary is defined to be one of the following:
A literal of any type other than type TIME
A constant (other than a deferred constant) explicitly declared by a constant declaration with a locally static subtype or with an unconstrained or partially constrained composite subtype for which the applicable constraints are locally static, and initialized with a locally static expression
A formal generic constant of a generic-mapped subprogram or package (whether explicitly declared or equivalent to a subprogram or package instance, respectively), declared with a locally static subtype and for which the associated actual is a locally static expression
An alias whose aliased name (given in the corresponding alias declaration) is a locally static primary and for which the subtype with which the aliased object is viewed is a locally static subtype
A function call whose function name denotes an implicitly defined operation or an operation defined in one of the packages STD_LOGIC_1164, NUMERIC_BIT, NUMERIC_STD, NUMERIC_BIT_UNSIGNED, or NUMERIC_STD_UNSIGNED in library IEEE and whose actual parameters are each locally static expressions [Reviewer note: I haven't found any tool which enforces that rule.]
A predefined attribute that is a value, other than the predefined attributes 'INSTANCE_NAME and 'PATH_NAME, and whose prefix is either a locally static subtype or is an object name that is of a locally static subtype
A predefined attribute that is a function, other than the predefined attribute 'VALUE with a prefix whose base type is the predefined type TIME, and other than the predefined attributes 'EVENT, 'ACTIVE, 'LAST_EVENT, 'LAST_ACTIVE, 'LAST_VALUE, 'DRIVING, and 'DRIVING_VALUE, whose prefix is either a locally static subtype or is an object that is of a locally static subtype, and whose actual parameter (if any) is a locally static expression
A user-defined attribute whose value is defined by a locally static expression
A qualified expression whose type mark denotes a locally static subtype and whose operand is a locally static expression
A type conversion whose type mark denotes a locally static subtype and whose expression is a locally static expression
A locally static expression enclosed in parentheses
An array aggregate in which all expressions in element associations are locally static expressions, all simple expressions in choices are locally static expressions, all discrete ranges in choices are locally static discrete ranges, and the others choice, if present, is locally static
A record aggregate in which all expressions in element associations are locally static expressions
An indexed name whose prefix is a locally static primary and whose index expressions are all locally static expressions
A slice name whose prefix is a locally static primary and whose discrete range is a locally static discrete range
A selected name whose prefix is a locally static primary
A locally static range is either a range of the second form (see 5.2.1) whose bounds are locally static
expressions, or a range of the first form whose prefix denotes either a locally static subtype or an object that
is of a locally static subtype. A locally static range constraint is a range constraint whose range is locally
static. A locally static scalar subtype is either a scalar base type or a scalar subtype formed by imposing on a
locally static subtype a locally static range constraint. A locally static discrete range is either a locally static
subtype or a locally static range.
[...]