CRE Programmer's Guide
Compiling and Binding Programs for the TNS CRE
Common Run-Time Environment (CRE) Programmer’s Guide—528146-004
3-9
Bind-Time Validation for Mixed-Language Programs
°
Word address
°
Extended address
°
Two-byte procedure parameter
°
Four-byte procedure parameter
Only C supports the passing of structured parameters by value. Such parameters 
cannot match parameters passed from any other language.
•
Return types (values returned on the stack) for both interlanguage and 
intralanguage calls must belong to the same class. The classes of return values 
are:
°
Two-byte integer scalar
°
Four-byte integer scalar
°
Four-byte real scalar
°
Eight-byte integer scalar
°
Eight-byte real scalar
°
No return type
Language Consistency Checking
Binder provides language consistency checking by making sure that callers specify the 
correct language for called routines. If a caller explicitly states that the language of a 
called routine is unspecified, Binder does not perform this check. 
If one caller specifies one language, and a subsequent caller specifies a different 
language, and neither of them has been resolved, Binder issues the message:
**** WARNING 149 **** Referencing procedures do not agree on the 
language of procedure procedure-name.
After it issues the message, Binder must determine which language to use for 
subsequent checking. If either caller is written in the same language as the called 
routine, Binder uses that language. If both callers specify languages other than that of 
the called routine, Binder selects the language of one of the caller routines. Binder 
makes this selection in the following order:
TNS COBOL
FORTRAN
TAL
TNS C
For example, if one caller specifies C and another caller specifies COBOL, Binder 
selects COBOL for the called routine.
Once Binder has determined the language of a called routine, and a caller specifies a 
different language, Binder issues the message:
**** WARNING 148 **** Referencing procedures claim that 
procedure procedure-name is written in a different language.
If Binder issues these messages during a bind session, examine calls to the named 
procedure in your source code to make sure they specify the correct language. Note 










