This section lists conditions that inhibit the inlining of
subroutines and functions, whether from a library or source file.
Many constructs that prevent inlining will also stop or restrict
IPA.
See Section 7.4.6 for other notes on the use
of the /inline and /ipa command qualifiers
and directives.
Conditions that inhibit inlining:
   - Dummy and actual arguments are mismatched in type or
   class.
   
 - Missing dummy parameter.
   
 - Missing actual parameter and the corresponding dummy
   parameter is an array.
   
 - Actual parameter is a nonscalar expression (for example,
   A+B, where A and B are arrays).
   
 - Number of actual parameters differs from the number of
   dummy parameters.
   
 - The size of an array actual parameter differs from the
   array dummy parameter AND the arrays cannot be linearized.
   
 - Subprogram is too long ( > 600 lines).
   
 - Subprogram has a SAVE statement.
   
 - Subprogram has variables that are live-on-entry, even if
   they are not in explicit SAVE statements.
   
 - Subprogram has a DATA statement and DATA implies SAVE and
   the variable is live-on-entry.
   
 - Calling routine and called routine have mismatched COMMON
   declarations.
   
 - Called routine has EQUIVALENCE statements. (Some of these
   can be handled.)
   
 - Called routine has NAMELIST statements.
   
 - Called routine has dynamic arrays.
   
 - CALL to be expanded has alternate return parameters.
   
 - Subprogram to be inlined contains a CALL with a subroutine
   or function name as an argument.
   
 - Subprogram contains unsubscripted array references in I/O
   statements.
   
 - Subprogram to be inlined contains POINTER statements.
   
 
Previous Page | Next Page | Contents | Index | 
Command-Line Qualifiers