HP aC++/HP C A.06.25 Release Notes
Table Of Contents
- HP aC++/HP ANSI C Release Notes
- Table of Contents
- 1 HP aC++/HP ANSI C Release Notes
- 2 What’s New in This Version
- New Features in Version A.06.25
- C99 default C compilation mode (Changed)
- Full -AA default C++ compilation mode (Changed)
- -Ax option enables support for several C++0x extensions (New)
- C99 features added to C++0x (New)
- extern template
- Decimal Floating Point supported in C++ mode (New)
- #pragma STDC FLOAT_CONST_DECIMAL64 (New)
- #pragma omp task (New)
- #pragma omp taskwait (New)
- Performance enhancements for +O1 (Changed)
- Non-template static data members initialized outside the class no longer treated as constants in strict mode (Changed)
- Enhancements to allow code to run well on current platforms and future multi-core processors (New)
- New diagnostic messages (New)
- Improved diagnostic messages (Changed)
- Enhanced +wendian warnings (New/Changed)
- New runtime abort messages (New)
- New Features in Version A.06.20
- Decimal floating-point arithmetic (HP-UX 11.31 only) (New)
- +annotate=structs (New)
- +check=lock (New)
- +check=thread (New)
- +O[no]autopar now supported in C++ Mode (New)
- +O[no]dynopt (HP-UX 11.31 only) (New)
- +inline_level num (Enhanced)
- -dumpversion (New)
- #include_next (New)
- #pragma diag_push (New)
- #pragma diag_pop (New)
- +Oinlinebudget is deprecated (Change)
- In next release, default C compilation mode will change from C89 to C99
- In next release, default C++ compilation mode will change to full -AA
- New Features in Version A.06.15
- printf, fprintf Optimization (New)
- +Wmacro Option (New)
- +Wcontext_limit Option (New)
- +wperfadvice Option (New)
- +Wv Option (New)
- +wlock Option (New)
- +O[no]autopar Option (New)
- +O[no]loop_block Option (New)
- +O[no]loop_unroll_jam (Default Change)
- +Olit=all (Default Change for HP C)
- +macro_debug= (New)
- +pathtrace (New)
- +check Suboptions (New)
- -Bhidden_def (New)
- -dM (New)
- #pragma OPT_LEVEL INITIAL (New)
- #pragma OPTIMIZE (Deprecated)
- #pragma [NO]INLINE (New for C++ Mode)
- _Asm_ld, _Asm_ldf, _Asm_st, _Asm_stf Intrinsics (New)
- Debugging Code Compiled with Opt Levels above +O1 Is Supported
- __attribute__ ((visibility("default"|"protected"|"hidden"))) Added (New)
- __attribute__ ((warn_unused_result)) Added (New)
- Change in treatment of cv-qualified assignment operators
- New Features in Version A.06.12
- New Features in Version A.06.10
- HP Code Advisor
- +cond_rodata Option (Obsoleted)
- +[no]dep_name Option (New)
- +expand_types_in_diag Option (New)
- +FPmode Option (Enhanced)
- +Ointeger_overflow (Default Changed)
- +Onolibcalls= Option (New)
- +wendian Option (New)
- +wlint Option (Enhanced)
- +wsecurity= Option (Enhanced)
- System-wide Option Configuration
- [NO]PTRS_TO_GLOBALS Pragma
- -AA -D_HP_NONSTD_FAST_IOSTREAM Performance Improvement Macro
- New Function Attributes
- Improved Diagnostics
- C++ Standard Library Change
- Earlier Versions
- New Features in Version A.06.25
- 3 Installation Information
- 4 Compatibility Information
- 5 Known Problems and Workarounds
- Obsolete LANG-STARTUP Files
- codecvt_byname Facet Needed for C Locale Conversions
- Using +check= Options and Running on Test and Deployment Systems
- GPREL22 Relocation Error
- Object Files Generated at +O4 or -ipo
- Incompatibilities Between the Standard C++ Library Ver. 1.2.1 and the Draft Standard
- Conflict Between macros.h and numeric_limits Class (min and max)
- Known Limitations
- 6 Related Documentation
file which defines a dummy function that has a parameter of that type (Widget)
and link it into the executable program.
• Known limitations of exception handling features:
— Interoperability with setjmp/longjmp (undefined by the ISO/ANSI C++
international standard) is unimplemented. Executing longjmp does not cause
any destructors to be run.
— If an unhandled exception is thrown during program initialization phase (that
is, before the main program begins execution) destructors for some constructed
objects may not run.
— HP aC++ does not support the linker option -Bsymbolic. Use the compile
time option -Bprotected_def if you want to throw types out of a shared
library. This limitation also occurs for dynamic_cast and RTTI.
• Known limitations of signal handling features:
— Throwing an exception from a signal handler is not supported, since a signal
can occur anyplace, including optimized regions of code in which the values
of destructible objects are temporarily held in registers. Exception handling
depends on destructible object being up-to-date in memory, but this condition
is only guaranteed at call sites.
— Issuing a longjmp in a signal handler is not recommended for the same reason
that throwing an exception is not supported. The signal handler interrupts
processing of the code resulting in undefined data structures with unpredictable
results.
• Source-level debugging of C++ shared libraries is supported. However, there are
limitations related to debugging C++ shared libraries, generally associated with
classes whose member functions are declared in a shared library, and that have
objects declared outside the shared library where the class is defined. Refer to the
appropriate release notes and manuals for the operating system and debugger
you are using. Refer also to the Software Status Bulletin for additional details.
• Instantiation of shared objects with virtual functions in shared memory is not
supported.
• Using shl_load(3X) or dlopen(3C) with Library-Level Versioning:
Once library-level versioning is used, calls to shl_load() or dlopen() (see
shl_load(3X)) should specify the actual version of the library that is to be loaded.
For example, if libA.so is now a symbolic link to libA.so.1, then calls to
dynamically load this library should specify the latest version available when the
application is compiled, such as:
shl_load("libA.so.1", BIND_DEFERRED, 0);
50 Known Problems and Workarounds