Resolution of procedure references

The subprogram name in a procedure reference is either established to be generic, established to be only specific, or not established.

A subprogram name is established to be generic in a scoping unit if one or more of the following cases is true:
  • The scoping unit has an interface block with that name.
  • The name of the subprogram is the same as the name of a generic intrinsic procedure that is specified in the scoping unit with the INTRINSIC attribute.
  • The scoping unit accesses the generic name from a module through use association.
  • There are no declarations of the subprogram name in the scoping unit, but the name is established to be generic in the host scoping unit.
A subprogram name is established to be only specific in a scoping unit when it has not been established to be generic and one of the following cases is true:
  • An interface body in the scoping unit has the same name.
  • There is a statement function, module procedure, or an internal subprogram in the scoping unit that has the same name.
  • The name of the subprogram is the same as the name of a specific intrinsic procedure that is specified with the INTRINSIC attribute in the scoping unit.
  • The scoping unit contains an EXTERNAL statement with the subprogram name.
  • The scoping unit accesses the specific name from a module through use association.
  • There are no declarations of the subprogram name in the scoping unit, but the name is established to be specific in the host scoping unit.

If a subprogram name is not established to be either generic nor specific, it is not established.



Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us