HP aC++/HP ANSI C A.06.27 Release Notes
.section .sdata = "asw", "progbits"
.align 8
gggggggg:: data4 0x000003e7
Object files generated at +O4 or -ipo
Object files generated by the compiler at optimization level 4, called intermediate object files, are
intended to be temporary files. These object files contain an intermediate representation of the user
code in a format that is designed for advanced optimizations. The size of these intermediate object
files may be 3 to 10 times as large as normal object files. Hewlett-Packard reserves the right to
change the format of these files without notice in any compiler release or patch. Use of intermediate
files must be limited to the compiler that created them. For the same reason, intermediate object
files should not be included in archived libraries that might be used by different versions of the
compiler. When an incompatible intermediate file is detected, the compiler issues a message and
terminates.
Because we do not guarantee the iELF compatibility across major releases, we strongly recommend
that customers who mix Fortran with C/C++ use the same version of the compiler when they use
-ipo.
Refer the discussion of tunables in the Installation section for additional information.
Incompatibilities between the standard C++ library ver. 1.2.1 and the
draft standard
As the ANSI C++ standard has evolved over time, the Standard C++ Library has not always kept
up. Such is the case for the times function object in the functional header file. In the standard,
times has been renamed to multiplies.
If you want to use multiplies in your code, to be compatible with the ISO/ANSI C++ standard,
use a conditional compilation flag on the aCC command line.
For example, for the following program, compile with the command line:
aCC -D__HPACC_USING_MULTIPLIES_IN_FUNCTIONAL test.c
// test.c
int times; //user defined variable
#include <functional>
// multiplies can be used in
int main() {}
// end of test.c
The following flags are now automatically set with A.05.* and A.06.* compilers:
• -D__HPACC_USING_MULTIPLIES_IN_FUNCTIONAL
• -D__HPACC_THREAD_SAFE_RB_TREE
• -D__HPACC_USING_MULTIPLIES_IN_FUNCTIONAL
• -D__HPACC-FIX_FUNC_ADAPTER_OPERATOR
• -D__HPACC_FULL_ITERATOR_REL_OPS
• -D__HPACC_TEMPLATE_PAIR_CTOR
• -D__HPACC_MEM_FUN_ADAPTOR
Conflict between macros.h and numeric_limits class (min and max)
If your code includes /usr/include/macros.h, note that the min and max macros defined in
macros.h conflict with the min and max functions defined in the numeric_limits class of the
Standard C++ Library. The following code, for example, would generate a compiler Error 134:
numeric_limits<unsigned int>::max();
If you must use the macros.h header, try undefining the macros that conflict:
Object files generated at +O4 or -ipo 45