Public Comment Number PC-UK0167 ISO/IEC CD 9899 (SC22N2620) Public Comment =========================================== Date: 1998-03-27 Author: Clive D.W. Feather Author Affiliation: Self Postal Address: Demon Internet Limited 322 Regents Park Road London N3 2QQ United Kingdom E-mail Address: Telephone Number: +44 181 371 1138 Fax Number: +44 181 371 1037 Number of individual comments: 1 Comment 1. Category: Normative change to intent of existing feature Committee Draft subsection: 6.5.5.2 Title: require side effects in VLA declarations to work normally Detailed description: 6.5.5.2 paragraph 3 states in part: It is unspecified whether side effects are produced when the size expression is evaluated. This rule will be extremely confusing to the normal programmer. It places a unreasonable burden, particularly if the size is determined via a function call. See the WG14 archives for a fuller discussion of the topic. Replace this sentence with: The size expression is evaluated in the normal way. For the purposes of determining the order of evaluation of subexpressions, all expressions in a declarator are evaluated simultaneously, as if they were combined by addition operators [*]. [*] Thus /int v [n++][n];/ causes undefined behavior because the expression /(n++)+(n)/ does. But /int v [n++] = { n++ };/ does not, because there is a sequence point between the expressions in the declarator and those in the initializer.