HP aC++ Release Notes Version A.03.95 (5900-1789; September 2011)

HP aC++ Release Notes
Problem Descriptions and Fixes, and Known Limitations
Chapter 180
When a 32-bit and 64-bit application call shl_unload() or dlclose() and that causes libCsup
to be unloaded, it fails when it executes static destructors at program termination. This causes a
program abort. This happens because related code and data of libCsup are no longer present. See
defect JAGaa86491.
HP aC++ does not support installation and execution on HP-UX 9.x, 10.00, and 10.01 systems.
HP aC++ does not support large files (greater than 2 GB) with <iostream.h> or <iostream>.
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 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.
Symbolic debugging information is not always emitted for objects which are not directly
referenced. For instance, if a pointer to an object is used but no fields are ever referenced, then HP
aC++ only emits symbolic debug information for the pointer type and not for the type of object that
the pointer points to.
For instance, use of Widget * only emits debug information for the pointer type Widget * and
not for Widget. To generate such information, create an extra source file which defines a dummy
function that has a parameter of that type (Widget) and link it into the executable program.
Known limitations of signal handling features:
Throwing an exception from a signal handler is not supported, since a signal can occur at any place,
including optimized regions of code in which the values of destructible objects are temporarily held
in registers. Exception handling depends on destructible objects 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, 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.
Instantiation of shared objects with virtual functions in shared memory is not supported.
When you call the shl_load(3X) routines in libdld.sl either directly or indirectly (as and when
your application calls use the +A option), an unresolved externals error is generated.