llvm-project
55adc0a7 - [flang][OpenACC] Accept ROUTINE directive within an interface block (#206863)

Commit
74 days ago
[flang][OpenACC] Accept ROUTINE directive within an interface block (#206863) An `!$acc routine` directive placed directly within an interface block (as an interface-specification, e.g. preceding the interface body it names) failed to parse and produced a misleading cascade of errors. Accept the OpenACC ROUTINE directive as an additional interface-specification alternative, mirroring the existing extension that allows a ROUTINE directive in a module subprogram part / at the top level. The grammar is widened narrowly to the ROUTINE construct only (not the whole OpenACC declarative construct). A named directive applies to the interface body it names; name resolution already runs in a separate pass after the interface-body symbols are created, so the directive-before-body ordering resolves correctly and the ROUTINE information is attached to the named procedure's symbol. This is documented as a Flang extension in OpenACC-extensions.md. Assisted-by: AI
Parents
Loading