HP Pascal/HP-UX Release Notes Version A.10.08

64 Chapter 4
Problem Descriptions and Fixes
Problems Encountered with Combining Options +DA2.0 and +O2
Problems Encountered with Combining
Options +DA2.0 and +O2
The following problems relate to the use of +DA2.0 with the optimization
option +O2. (This problem does not affect the use of +DS2.0.)
It is recommended that you use +DA1.1 if any of the following errors
occur. They are all related to specific optimizations made for PA-RISC 2.0
systems dealing with 64-bit register support.
The error messages are:
**** INTERNAL ERROR # 1 Utils: Sanity Check: Inconsistent
internal data structures. (6933)
**** INTERNAL ERROR # 1 inst: Illegal displacement, low
order bits must be zero. (7828)
Error 7828 occurs if LONGINT or BIT52 items are misaligned, on
word boundaries. It is also possible for it to abort at runtime if
pointers are used.
Error 6933 occurs in association with 64-bit items for the following
reasons:
Range and overflow checking for LONGINT or BIT52. This can be
suppressed by using $RANGE OFF$ and $OVFLCHECK OFF$.
Using BUILDPOINTER to create $EXTNADDR$, 64-bit
addresses.
Using ADDR to create pointers to procedures/functions.
Using ROUND on LONGREAL.
Set expressions dealing with 64-bit sets.
Incorrect results occur when using MOD by a non-power of 2 constant
for LONGINT or BIT52.
Incorrect aliasing will degrade performance of LONGINT or BIT52
and probably negate any benefit of +DA2.0 for Pascal.