This is an archive of the discontinued LLVM Phabricator instance.

[flang] Change TYPE(*) arrays passing convention
ClosedPublic

Authored by jeanPerier on Apr 12 2023, 6:58 AM.

Details

Summary
  • Fix the BIND(C) assumed-shape case: TYPE(*) assumed shape are passed via CFI_cdesc_t according to Fortran 2018 standard 18.3.6 point 2 (5).
  • Align the none BIND(C) case with the BIND(C) case. There is little point passing TYPE(*) assumed size via descriptor, use a simple address. C710 ensures there is no way the knowledge of the actual type will be required when manipulating the dummy.

Depends on D148128

Diff Detail

Event Timeline

jeanPerier created this revision.Apr 12 2023, 6:58 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 12 2023, 6:58 AM
jeanPerier requested review of this revision.Apr 12 2023, 6:58 AM
clementval accepted this revision.Apr 12 2023, 8:17 AM

LGTM. Thanks for working on this.

This revision is now accepted and ready to land.Apr 12 2023, 8:17 AM
PeteSteinfeld accepted this revision.Apr 12 2023, 10:57 AM

After I bypass the build error introduced in D148128, all builds and tests correctly and looks good.

This revision was automatically updated to reflect the committed changes.