HP aC++/HP C Programmer's Guide (B3901-90036; A.06.26; September 2011)
FLOAT_TRAPS_ON Pragma
#pragma FLOAT_TRAPS_ON [function {,function}]
This pragma informs the compiler that the specified functions may enable floating-point
trap handling. When the compiler is so informed, it will not perform loop invariant code
motion (LICM) on floating-point operations in the functions named in the pragma. This
pragma is required for proper code generation when floating-point traps are enabled.
NOTE: This pragma is not supported in C++. It is deprecated for HP C and C++
C-mode. You should use#pragma STDC FENV_ACCESS ON instead.
For example,
#pragma FLOAT_TRAPS_ON xyz,abc
informs the compiler and optimizer that xyz and abc have floating-point traps turned
on and therefore LICM optimization should not be performed. A dummy name _ALL
represents all functions.
[NO]INLINE Pragma
#pragma [NO]INLINE sym[,sym]
The [NO]INLINE pragma enables[disables] inlining for all functions or specified function
names.
For example, to specify inlining of the two subprograms checkstat and getinput,
use:
#pragma INLINE checkstat, getinput
To specify that an infrequently called routine (opendb, for example) should not be inlined
when compiling at optimization level 3 or 4, use:
#pragma NOINLINE opendb
Usage Notes for C++:
• Use the unmangled name of the function.
• All overloaded versions of the function will be affected.
• The pragma can affect "inline functions"---class member functions defined in the class
definition; these have the same treatment as functions declared with the inline
keyword.
Usage Notes for both C and C++:
• The pragma can be used without a function name, in which case it affects all functions
until the next instance of the pragma or the end of the module. Consider the following:
126 Pragma Directives and Attributes