C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)
• Extensible and variable functions in native C and C++ can have a maximum of 31 parameters.
• Native C++ imposes these additional restrictions on the FUNCTION pragma:
Extensible and variable functions cannot be overloaded.◦
◦ Extensible and variable functions cannot have default parameters.
◦ Extensible and variable functions cannot be used in function templates and member
functions.
Examples
This example shows the declaration for the C function myproc, which is a TAL variable procedure
with the externally visible procedure name MY^PROC:
void myproc (int);
#pragma function myproc (tal, variable, alias("MY^PROC"))
/* function declaration */
void myproc (int x)
/* function definition */
{ if ( x >= 0 )
Positive(x);
else
Negative(x);
}
GLOBALIZED
The GLOBALIZED option directs the TNS/E native C and C++ compilers to generate preemptable
object code. Preemptable object code allows named references in a DLL to resolve to
externally-defined code and data items instead of to the DLL’s own internally-defined code and
data items. You must specify the GLOBALIZED option when building globalized DLLs or when
compiling code that will be linked into a globalized DLL. Preemptable code is less efficient than
non-preemptable code; therefore, the GLOBALIZED option should be specified only when required.
By default, the compiler generates non-preemptable object code.
GLOBALIZED
The default settings for the GLOBALIZED option are:
SYSTYPE OSSSYSTYPE GUARDIAN
N.A.N.A.TNS C compiler
N.A.N.A.G-series TNS c89 utility
N.A.N.A.TNS/R native C and C++ compilers
Not setNot setNative c89 and c99 utilities
Not setNot setTNS/E native C and C++ compilers
Usage Considerations
• The GLOBALIZED option can be specified only on the compiler RUN command line. In the
OSS and PC environments, it is specified with the -Wglobalized flag of the c89 or the c99
utility.
• In the OSS and Windows environments, the -Wglobalized option has an effect only for
-Wtarget=ipf or -Wtarget=tns/e. It has no effect (and no diagnostic is issued) for
-Wtarget=mips or -Wtarget=tns/r.
198 Compiler Pragmas