nld and noft Manual
nld Utility
nld and noft Manual—520384-003
2-25
Run-Time Consistency Checking
Run-Time Consistency Checking
If a program tries to use a processor that does not support IEEE floating-point format, 
then process creation error code 64 occurs (IEEE floating-point support not 
available on this processor). To determine whether a processor can run IEEE 
floating-point instructions, programs can call the PROCESSOR_GETINFOLIST_ 
procedure. For more information about this procedure, see the Guardian Procedure 
Calls Reference Manual.
Run-time consistency checking includes a check for floattype consistency between 
the program file and the user library file, if one is used. IEEE and Tandem floating-point 
formats use different data formats and calling conventions: IEEE floating-point values 
are typically passed in IEEE floating-point registers, while Tandem floating-point values 
are passed in general purpose registers. Problems can occur if a function using one 
floating-point format calls a function using the other format. Checks are performed at 
process creation to ensure that the user library (if there is one) has a floattype 
compatible with that of the program file. If not, the program is not allowed to run.
If the floattype attribute of the program file is IEEE and floattype attribute of the 
user library file is Neutral, the program is allowed to run, and the C/C++ run-time 
libraries operate in IEEE mode.
Even if the user library is marked with a floattype attribute that conflicts with the 
program file, the program can use the library if the program does not call anything in 
the user library that uses floating point. In this case, you must mark the program file 
with the -set float_lib_overrule on command to disregard the floattype 
attribute of the user library file (see Overruling the Run-Time Consistency Check on 
page 2-26).
TNS/R Native User Libraries
If you are using a TNS/R native user library, the library file must use the same floating-
point format as the program, and the library must be marked accordingly. If the user 
library does not use floating point at all, you can mark the library NEUTRAL_FLOAT 
using the -set floattype or -change floattype option. Then the user library 
can be used by any kind of program.
Table 2-5. Incompatible Program File and User Library floattypes (TNS)
floattype in program file floattype in user library file
IEEE Tandem
Tandem IEEE
Neutral IEEE










