08-302 To: J3-USTAG From: Van Snyder Subject: Storage_Size integration Date: 2008 November 19 Reference: 08-207 In paper 08-207, J3-USTAG advocates to add STORAGE_SIZE to the list of functions allowed by C1288 on page 310 in 08-007r2. WG5 has decided to delete the constraint from Fortran 2008. The intent of the constraint was to require that the stack frame of the procedure be the same size for every iteration of the loop over array elements, which would facilitate the optimization of moving the loop over array elements inside the elemental procedure, that is, the specification part need be elaborated only once. Because Fortran 2003 introduced deferred length components, it is, however, possible to cause a local variable of the elemental procedure to be an automatic variable that has a different size for each element of the actual argument array(s). A processor can, however, move the creation of offending automatic variables inside the loop over array elements, and the elaboration of the remainder of the specification part outside the loop, by carrying out exactly the same analysis as would be required to announce a violation of the constraint. The constraint is therefore not useful, and retaining it just makes the standard longer and requires all processors to be able to diagnose violations of it, even if they do not use the analysis required by it to carry out the optimization.