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

compiler uses, and the "decimal encoding". Both encodings provide exactly the
same data, analogous to big endian and little endian encodings.
• Decimal FP I/O and string conversion. The decimal FP length modifiers for
printf() and scanf() floating-point conversion specifiers (a, A, e, E, f, F, g, G)
are H for _Decimal32, D for _Decimal64, and DD for _Decimal128. The decimal a,
A specifiers for printf(), given no precision or sufficient precision, produce an
exact quantum-preserving representation of the decimal FP value being converted.
• WDB debugger support for printing values of decimal FP types.
• Suffixes to designate decimal floating constants: df or DF for _Decimal32, dd or
DD for _Decimal64, and dl or DL for _Decimal128. Note that an unsuffixed floating
constant still has type double, regardless of the context. Explicit suffixing with a
d or D to specify type double is also allowed.
• Decimal FP versions of macros in <float.h>, <math.h>, and <fenv.h>.
• Five rounding modes for decimal FP: to nearest with ties to even, to nearest with
ties away from zero, upward, downward, and toward zero.
• Compiler option +decfp, which enables full decimal FP functionality according
to the ISO/IEC C draft Technical Report: http://www.open-std.org/jtc1/
sc22/wg14/www/docs/n1312.pdf
• Compiler option -fpevaldec=precision, which specifies the minimum
precision to use for decimal floating-point expression evaluation. The possible
values for precision are _Decimal32, _Decimal64, and _Decimal128. This
option does not affect the precision of parameters, return types, or assignments.
The default is -fpevaldec=_Decimal32.
• Type-generic functions in <tgmath.h> that take on the type of decimal FP (or
binary FP) arguments.
• Our Decimal FP support incorporates code from the Intel Decimal Floating-Point
Math Library.
To use decimal FP:
• Install the following on an HP-UX 11i V3 (11.31) Integrity system:
— core Math patch PHSS_38137
— math manpage patch PHCO_38388
— libc patch PHCO_38048
— libcEnhancement package (http://docs.hp.com/en/5992-3373/ch10s12.html)
— libc man page patch PHCO_37128 (for printf and scanf man pages)
• To use any decimal FP functionality (even built-in operators), add the +decfp
option to the compile and link lines.
• To use the decimal FP functionality in <math.h>, <float.h>, <fenv.h>, or
<tgmath.h>, define __STDC_WANT_DEC_FP__ before including the header.
New Features in Version A.06.20 21