This is an archive of the discontinued LLVM Phabricator instance.

[flang] Infrastructure improvements in utility routines
ClosedPublic

Authored by klausler on Jan 19 2021, 5:16 PM.

Details

Summary
  • IsArrayElement() needs another option to control whether it should ignore trailing component references.
  • Add IsObjectPointer().
  • Add const Scope& variants of IsFunction() and IsProcedure().
  • Make TypeAndShape::Characterize() work with procedure bindings.
  • Handle CHARACTER length in MeasureSizeInBytes().
  • Fine-tune FindExternallyVisibleObject()'s handling of dummy arguments to conform with Fortran 2018: only INTENT(IN) and dummy pointers in pure functions signify; update two tests accordingly.

Also: resolve some stylistic inconsistencies and add a missing
"const" in the expression traversal template framework.

Diff Detail

Event Timeline

klausler created this revision.Jan 19 2021, 5:16 PM
klausler requested review of this revision.Jan 19 2021, 5:16 PM
Herald added a project: Restricted Project. · View Herald TranscriptJan 19 2021, 5:16 PM
PeteSteinfeld accepted this revision.Jan 19 2021, 6:10 PM

All builds, tests, and looks good.

This revision is now accepted and ready to land.Jan 19 2021, 6:10 PM
This revision was automatically updated to reflect the committed changes.
MaskRay added a subscriber: MaskRay.EditedJan 26 2021, 9:22 AM

In your commit the message does not include Reviewed by:. Many people agree that both Reviewed by: & Differential Revision: should be present. The Reviewed by: list indicates people who acknowledged the patch. (The Reviewers: list does not necessarily mean all the people on the list have acknowledged the patch so Reviewers: is mostly useless.)

arc amend can fetch the Phabricator summary and amend the local description.

You can install llvm/utils/git/pre-push.py to prevent accidental Summary:, Reviewers:, Subscribers: and Tags: in the presence of Differential Revision:.