HP aC++/HP C A.06.20 Release Notes
#pragma OPTIMIZE (Deprecated)
As of this release of the compiler, #pragma OPTIMIZE is deprecated. Use #pragma
OPT_LEVEL instead.
#pragma [NO]INLINE (New for C++ Mode)
Previously, #pragma [NO]INLINEwas supported only on HP C and aC++ C-mode.
With this release, #pragma [NO]INLINEis now supported in C++ mode as well.
_Asm_ld, _Asm_ldf, _Asm_st, _Asm_stf Intrinsics (New)
The following new assembly intrinsics have been added to the compiler:
_Asm_ld _Asm_st
_Asm_ldf _Asm_stf
For more information, see the "Inline assembly for Itanium(R)-based HP-UX" link off
http://www.hp.com/go/cpp.
Debugging Code Compiled with Opt Levels above +O1 Is Supported
Debugging code compiled with optimization levels above +O1is now supported, as
described in section 14.22 ("Debugging optimized code") of the Debugging with GDB
manual under the "Documentation" link at: http://www.hp.com/go/wdb.
__attribute__ ((visibility("default"|"protected"|"hidden"))) Added (New)
The visibility attributes "default", "protected", and "hidden", are equivalent to the
options -Bdefault, -Bprotected, and -Bhidden, and the pragmas
DEFAULT_BINDING, EXTERN, and HIDDEN, respectively.
__attribute__ ((warn_unused_result)) Added (New)
The warn_unused_result attribute tells the compiler to emit a warning if a caller
of a function with this attribute does not use its return value. This is useful for functions
where not checking the result can be a security problem or always a program bug, as
with realloc().
Change in treatment of cv-qualified assignment operators
A user-defined assignment operator that is a const or volatile member function, is
not considered a copy assignment operator, and the compiler will not suppress the
declaration of an implicit copy assignment operator. As a result, the implicitly generated
version might be chosen during overload resolution, if it is a better match. For example:
struct S {
S();
const S& operator=(const S&) const;
};
New Features in Version A.06.15 25