[flang] Enabling automatic declaration of names in SHARED locality-spec's
Prior to this change, the compiler issued an error message when a name in a SHARED locality-spec had not been declared explicitly in an enclosing scope. Presumably, this was done to enforce constraint C1124. This constraint states that "A variable-name in a locality-spec shall be the name of a variable in the innermost executable construct or scoping unit that includes the DO CONCURRENT statement". For LOCAL and LOCAL_INIT locality-spec's, we were automatically creating a local variable in the situation where one had not been explicitly declared rather than issuing an error message. The only compiler I could find that implements the SHARED locality-spec was the PGI compiler, which automatically creates a variable and does not emit an error message. Also, @vdonaldson said that he had consulted with a member of the Fortran standards committee who said that the correct thing was to create a variable if necessary. This change has the compiler creating a variable in the enclosing scope of a DO CONCURRENT statement if necessary. I also changed a test to adapt to the new behavior. I also consolidated the semantic checking for the constraints associated with all of the locality-spec's. Original-commit: flang-compiler/f18@d9253a76fcbc49df11c017557b365dfeed7c2b3b Reviewed-on: https://github.com/flang-compiler/f18/pull/551 Tree-same-pre-rewrite: false
Loading
Please sign in to comment