Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More procedure reference semantics checking (mostly arguments) #776

Merged
merged 1 commit into from Oct 7, 2019

Conversation

klausler
Copy link
Collaborator

@klausler klausler commented Oct 4, 2019

Implement checks of effective argument number, types, and ranks against the requirements of explicit and implicit interfaces. Handles calls to external subprograms for which interfaces are known but not explicit gracefully with warnings. Implements "same derived type" test for type compatibility (with some remaining TODO iterms). Implements insertion of PASS arguments into argument lists, and the rearrangement of argument lists with keywords. Implements a predicate for simple contiguity -- this will be used more in later work.

More argument checks are coming, but this branch was accumulating too many changes and is stable enough for review now.

Tested against f90_correct suite (and found some errors).

lib/semantics/mod-file.cc Outdated Show resolved Hide resolved
test/semantics/call13.f90 Outdated Show resolved Hide resolved
lib/semantics/expression.cc Outdated Show resolved Hide resolved
lib/semantics/expression.h Outdated Show resolved Hide resolved
lib/evaluate/check-call.h Outdated Show resolved Hide resolved
lib/evaluate/check-call.cc Outdated Show resolved Hide resolved
lib/evaluate/check-call.cc Outdated Show resolved Hide resolved
lib/evaluate/check-call.cc Outdated Show resolved Hide resolved
Extend documentation on preprocessing

IsSimplyContiguous

basic skeleton

Apply suggested improvements to mod-file.cc

Checks for new call13.f90 (15.4.2.2 explicit interfaces)

Implement checking for procedures that can be called via an implicit interface

Argument checking, test fixing

Better argument checking

Better derived type compatibility checking

Treat externals as if implicitly interfaced

Extend IEEE_EXCEPTIONS module so tests still pass with argument checking

SAME_TYPE_AS and EXTENDS_TYPE_OF intrinsic inquiry functions

Define interfaces for most intrinsic subroutines

Better PASS arguments

More with PASS() argument

Prep for review

address comments

fix comment

Remove formatted expression from specification expression error message per review

more review comments
Copy link
Collaborator

@jeanPerier jeanPerier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was too slow pushing my review comments. Here are the only ones that could deserve attention. These are not bug/issues, I am just worried the TypeAndShape lenght handling is duplicating code/information.
The rest looks good to me for what I looked at.

lib/evaluate/characteristics.h Show resolved Hide resolved
lib/evaluate/characteristics.h Show resolved Hide resolved
swift-ci pushed a commit to apple/llvm-project that referenced this pull request Apr 9, 2020
Extend documentation on preprocessing

IsSimplyContiguous

basic skeleton

Apply suggested improvements to mod-file.cc

Checks for new call13.f90 (15.4.2.2 explicit interfaces)

Implement checking for procedures that can be called via an implicit interface

Argument checking, test fixing

Better argument checking

Better derived type compatibility checking

Treat externals as if implicitly interfaced

Extend IEEE_EXCEPTIONS module so tests still pass with argument checking

SAME_TYPE_AS and EXTENDS_TYPE_OF intrinsic inquiry functions

Define interfaces for most intrinsic subroutines

Better PASS arguments

More with PASS() argument

Prep for review

address comments

fix comment

Remove formatted expression from specification expression error message per review

more review comments

Original-commit: flang-compiler/f18@3cca775
Reviewed-on: flang-compiler/f18#776
swift-ci pushed a commit to apple/llvm-project that referenced this pull request Apr 9, 2020
…/pmk-call

More procedure reference semantics checking (mostly arguments)

Original-commit: flang-compiler/f18@c582562
Reviewed-on: flang-compiler/f18#776
mem-frob pushed a commit to draperlaboratory/hope-llvm-project that referenced this pull request Oct 7, 2022
Extend documentation on preprocessing

IsSimplyContiguous

basic skeleton

Apply suggested improvements to mod-file.cc

Checks for new call13.f90 (15.4.2.2 explicit interfaces)

Implement checking for procedures that can be called via an implicit interface

Argument checking, test fixing

Better argument checking

Better derived type compatibility checking

Treat externals as if implicitly interfaced

Extend IEEE_EXCEPTIONS module so tests still pass with argument checking

SAME_TYPE_AS and EXTENDS_TYPE_OF intrinsic inquiry functions

Define interfaces for most intrinsic subroutines

Better PASS arguments

More with PASS() argument

Prep for review

address comments

fix comment

Remove formatted expression from specification expression error message per review

more review comments

Original-commit: flang-compiler/f18@3cca775
Reviewed-on: flang-compiler/f18#776
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants