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
• #pragma diag_push (New)
• #pragma diag_pop (New)
• +Oinlinebudget is deprecated
• In next release, default C compilation mode will change from C89 to C99
• In next release, default C++ compilation mode changes to full -AA
Decimal floating-point arithmetic (HP-UX 11.31 only) (New)
On HP-UX 11.31 systems, support is now included for decimal floating-point arithmetic
for C. This support follows the current draft revision of the IEEE 754 floating-point
standard and ISO/IEC Technical Report 24732, Extensions for the programming language
C to support decimal floating-point arithmetic. With decimal FP (unlike the usual binary
FP), typical numerical strings can be represented exactly in the types, avoiding subtle
input errors and confusion from inexact output. Therefore, decimal FP is WYSIWYG.
Decimal FP is designed particularly for financial applications, including banking,
billing, tax calculation, currency exchange, and accounting.
A decimal FP representation is best thought of as a triple (s, c, q) composed of a sign (1
or −1), an integral coefficient, and a quantum exponent, representing s * c *10
q
. Therefore,
123. = (1, 123, 0) and 123.00 = (1, 12300, −2) are different representations, although they
have the same numerical value and compare equal. Arithmetic operations are defined
to preserve the position of the decimal point, much as hand-computation would. For
example, 123.00 + 45.6 = 168.60 and 123.00 * 0.01 = 1.2300. These special quantum
semantics facilitate exact fix-point calculation. For typical floating-point calculations,
the quantum semantics can be ignored.
Decimal FP support includes the following:
• Three built-in decimal FP types:
_Decimal32 _Decimal64 _Decimal128
with 7, 16, and 34 decimal digits of precision, respectively.
• The usual built-in arithmetic operators for decimal FP operands: +, −, *, /,
assignments, comparisons, and conversions with integer and binary FP types, all
with correctly-rounded IEEE arithmetic. An operation may combine a decimal FP
operand with an operand of a different decimal FP type or with an integer type.
However, mixing operands of decimal and binary FP types is not allowed.
• 60 math functions for each decimal FP type. Function suffixes are d32 for
_Decimal32, d64 for _Decimal64, and d128 for _Decimal128. Included are:
— Decimal FP versions of the C99 math functions.
— New functions to manage quantum exponents (for fixed-point calculation).
— Routines to encode and decode data for either of the two standard encodings
for decimal FP data. Details of the encodings are in the draft revision of IEEE
754, which refers to them as the "binary encoding", which the HP C/aC++
20 What’s New in This Version