HPlogo HP C++ Version A.12.10 Release Notes: HP 9000 Computers > Chapter 4 Problem Descriptions and Fixes and Known Limitations

Known Limitations

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

Some of these limitations with possible workarounds are discussed in detail elsewhere in this document. Please be aware that some of these limitations are platform-specific.

For a complete list of known limitations, search for the keyword "limitations" in the HP C++ Online Programmer's Guide.

The setjmp/longjmp and +eh option

Code compiled in compiler mode with the +eh option should not use setjmp/longjmp. To use setjump/longjmp with +eh in translator mode, replace all setjmp/longjmp calls with Setjmp/Longjmp. You must also must change the #include from <setjmp.h> to <Setjmp.h>.

Kernel threads unsupported

The thread-safe level of the code generated by HP C++ depends on which libC routines are called with the possible exception of static constructors for function scope statics or +eh co de.

Thread-safe levels depends on which particular interface and the type of threads.

Table 4-1 Thread-safe Levels

 

Kernel Threads

User Threads

Generated Code:

Function-scope statics

Thread-Restricted C. User owns local variable.

Thread-Restricted C. User owns the local variable.

File-scope static and globals

Thread-Restricted C for dynamic loading of shared libraries. Ordering of initialization may be
more of a problem.

Thread-Restricted C for dynamic loading of shared libraries. Ordering of initialization may be
more of a problem.

+eh code

Thread-Restricted A.

Thread-Unusable unless other threads are just C.

Thread-Safe Performance
Constrained.

libC interfaces:

+eh ([re]throw)

Thread-Restricted A. Thread-Restricted B if only one thread is written in C++.

Thread-Safe Performance
Constrained.

I/O (iostreams, strstream, etc.)

Thread-Restricted C.

Thread-Safe Performance Constrained. Tuned if using predefined streams: cin, cout, cerr, clog. Otherwise Thread-Restricted C.

vec new/delete

Thread-Restricted C.

Thread-Safe
Performance Constrained.

cxxshl_load and cxxshl_unload

Thread-Restricted C.

Thread-Restricted C.

Others

Probably references no statics/globals so completely safe. libC is not fork-safe. It assumes no cancellations are possible.

Probably references no statics/globals so completely safe. libC is not fork-safe. It assumes no
cancellations are possible.

 

© 1998 Hewlett-Packard Development Company, L.P.