HP aC++ A.03.85 Release Notes

HP aC++ Release Notes
New Features in Version A.03.25
Chapter 162
In the case mentioned above, gcc currently discards only the last preceding sequence of
non-whitespace characters, while HP aC++ discards the last preprocessor token.
Alignment of long double Data Type in 64-bit mode Changed to
16-bytes
Alignment of the long double data type in 64-bit mode (+DA2.0W) is now 16-bytes. This ensures
compatibility with the HP PA-RISC ABI and HP C.
In particular, the layout and alignment of a struct that contains jmp_buf are now identical for
HP C and HP aC++ (since jmp_buf is a typedef that is defined with a long double).
For code compiled with the prior 8-byte default, a problem occurs when a long double is a field
in a class, struct or union. When the structure in question is shared between C and C++ there
is a 50% chance that the fields are not on the same offsets in both languages, and the wrong
data will be accessed.
Symptoms of this problem might be:
Wrong runtime results and corruption
Various aborts if there are pointers that occur after the long double fields
NOTE If you must use the prior 8-byte alignment for long double, use
the -Wc,-longdouble,old_alignment option.
-D__HPACC_THREAD_SAFE_RB_TREE Macro Ensures Thread Safety
The Rogue Wave Standard C++ Library 1.2.1 (libstd) and Tools.h++ 7.0.6 (librwtool) are not
thread safe in all cases. The -D__HPACC_THREAD_SAFE_RB_TREE preprocessor macro ensures
thread safety.
For more details, refer to HP aC++ Online Programmer’s Guide.