Mantis 2184

Current text at the end of 11.2.1 Constant Expressions from P1800-2008-draft4:

 

Constant system function calls are calls to certain built-in system functions where the arguments are constant expressions. When used in constant expressions, these function calls shall be evaluated at elaboration time. The system functions that may be used in constant system function calls are pure functions, i.e., those whose value depends only on their input arguments and which have no side effects. Specifically, the system functions allowed in constant expressions are the conversion system functions listed in 19.5 and the mathematical system functions listed in 19.8.

Change this text to:

 

Constant system function calls are calls to certain built-in system functions where the arguments are constant expressions meet conditions outlined below. When used in constant expressions, these function calls shall be evaluated at elaboration time. The system functions that may be used in constant system function calls are pure functions, i.e., those whose value depends only on their input arguments and which have no side effects. Specifically, the system functions allowed in constant expressions are the conversion system functions listed in 19.5 and the mathematical system functions listed in 19.8.

 

Certain built-in system functions where the arguments are constant expressions are constant system function calls. Specifically, these are the conversion system functions listed in 19.5 and the mathematical system functions listed in 19.8.

 

The data query system functions listed in 19.6 and the array query system functions listed in 19.7 are normally also constant system function calls even when their arguments are not constant. See those sections for the conditions under which these query system function calls are considered to be constant expressions.