HPlogo HP C++ Version A.11.01 Release Notes: HP 9000 Computers > Chapter 1 New and Changed Features

Overview of This Release of HP C++

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

New and changed features in this HP C++ release include compiler enhancements and problem fixes, and revised online help documentation.

New and Changed Features

The new and changed features for A.11.00 are listed below. These items are fully documented in the HP C++ Online Programmer's Guide (see Chapter 3 for access instructions.)

  • New Compiler Options +ESlit and +ESsfc.

  • Compiler option +a1 changed to be default behavior. This option causes translator mode to produce ANSI C style declarations.

  • +p option identifies more source code constructs that may be issues when migrating to HP aC++, which supports ANSI C++ syntax.

  • The +DA option changed so that if you specify +DA and not +DS, the default instruction scheduling is based the +DA option, not the type of system on which you are compiling. Refer to the online help for details about these two options.

  • Any programs that use +eh and also use Setjmp/Longjmp must change the #include from &setjmp.h> to &Setjmp.h>.

  • Header files for the HP Codelibs library moved from /opt/CC/include/codelibs/ to /usr/contrib/include/codelibs. You may see errors that the compiler cannot find certain files.

    The instructions for building the HP Codelibs library are in /usr/contrib/codelibs/README.

  • For task library users, libV3 is no longer required.

  • Changes to the following in HP UX 10.30 may cause incompatibilities with programs created with previous versions of HP C++:

    • The underlying type corresponding to the typedef size_t changes from unsigned int to unsigned long. Similarly, ptrdiff_t changes from int to long.

      These changes cause compatibility problems when size_t is used in a non-extern C interface because the mangled signature is different.

      Because of these changes, if any object files are recompiled or linked, then you must recompile all C++ files. This means that third-party libraries in archive form may also need to be recompiled or updated.

    • In HP UX 10.30, time_t changes to type long. This change may cause source files that compile without error using HP C++ for HP-UX 10.10 or 10.20 might not compile with the 10.30 release. The example below shows one example of what may occur.

      1: #include <time.h>
      2: time_t ff (time_t t) { return t; }
      3: time_t ff (long t) { return t; }
      4: int main () { long tt = ff (1L); return 0; }

      In the example, ff is overloaded to take either a time_t or a long parameter. On a 10.10 or 10.20 system, where time_t is an int, the code compiles. On a 10.30 system, however, where time_t is a long, the code fails to compile:

      CC: "tm.c", line 4: error: two definitions of ff() (1034)

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