Consider a local variable declaration of the form
, and each optional initializer clause is either empty, or a term ``
='', where is an expression or an array initializer. We must have .
For each variable declarator
If is a multiarray type
we unconditionally break the declaration into a series of transformed,
single-variable declarations, :
If is not a multiarray type, and all are empty, the whole declaration is unchanged in the transformed code.
In any other case,
suppose is the first variable initializer for which
is not empty. We will take the transformed
declaration to be:
is empty and is not a composite expression,
then is just:
If is composite expression , one may anticipate this transformation, and arrange to have the simplify algorithm treat as if it was originally on the right-hand side of a top-level assignment. This will avoid the introduction of an unnecessary temporary.
The case of a local variable declaration appearing in the initialization section of a for-loop header may need some special treatment--see page .