HP aC++/HP C A.06.25 Programmer's Guide
• 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:
#pragma NOINLINE foo
#pragma INLINE
[foo will be inlined here]
• Inline functions (those declared with the inline keyword or as described above
for C++), can be affected by #pragma NOLINLINE, which overrides the keyword.
• The inline keyword indicates a recommendation to the compiler that the function
be inlined; the compiler can then make a profitability decision whether or not to
perform the inlining.
• The [NO]INLINE pragma and +O[no]inlineoption are treated as directives to
the compiler; the compiler obeys the pragma or option without performing
profitability analysis.
• There are some cases that are not valid to inline. In these cases, the pragma or
option is silently ignored.
NO_INLINE Pragma
#pragma NO_INLINE
This is equivalent to #pragma NOINLINE. The NO_INLINE pragma disables inlining
for all functions or specified function names.
IVDEP Pragma
#pragma IVDEP
For the associated loop, this pragma directs the compiler to ignore any apparent loop
dependencies involving references to array-typed entities.
NODEPCHK Pragma
#pragma NODEPCHK
For the associated loop, this pragma directs the compiler to ignore all loop dependencies
(regardless of type) except for induction variables and some other scalar loop
dependencies as determined by the compiler implementation.
NO_RETURN Pragma
#pragma NO_RETURN function1, [function2, . . .]
The NO_RETURN pragma is anassertion to the optimizer that the named functions never
return to the call site.This allows the optimizer to delete any code after the function. A
C++ function marked with the NO_RETURN pragma may still throw an exception unless
it has an emty throw list.
138 Pragma Directives and Attributes