C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)

Table 30 Effects of FUNCTION Attributes (continued)
aliasvariableresidentextensibleNo attributeLanguage
ValidErrorIgnoreErrorValidfortran
ValidValidIgnoreValidValidpascal
ValidValidValidValidValidtal
ValidValidIgnoreValidValidunspecified
The pragma default settings are:
SYSTYPE OSSSYSTYPE GUARDIAN
Not setNot setTNS C compiler
Not setNot setG-series TNS c89 utility
Not setNot setTNS/R native C and C++ compilers
N.A.N.A.Native c89 and c99 utilities
Not setNot setTNS/E native C and C++ compilers
Usage Guidelines
The FUNCTION pragma can be entered on the compiler RUN command line or in the source
text. For TNS c89, the FUNCTION pragma must be entered in the source file.
The alias attribute cannot be used with a pointer to a function.
The extensible and variable attributes cannot be specified for a function that passes or
returns a structure by value.
Only one language can be specified for a function.
FUNCTION can be entered in either uppercase or lowercase.
The extensible and variable attributes cannot both be specified for the same function.
If you declare an external procedure as unspecified, the actual procedure cannot be both
written in C and compiled using the OLDCALLS pragma.
Unlike previous methods for declaring external functions, the FUNCTION pragma is compliant
with the ISO/ANSI C standard.
The language attribute tal identifies both TAL and pTAL procedures.
The param-count argument for the extensible attribute can be used only for native C
and C++ programs.
Cfront imposes these additional restrictions on the FUNCTION pragma:
It cannot be used for C++ functions or to change the language attribute.
It can be applied only to functions in the global scope.
No other pragmas can appear on the same line as a FUNCTION pragma.
The resident and alias attributes cannot be used.
C-style variable argument lists (...) cannot be used in variable and extensible functions.
FUNCTION 197