HP aC++ A.03.85 Release Notes

HP aC++ Release Notes
Problem Descriptions and Fixes, and Known Limitations
Chapter 176
Potential Source Incompatibility of Objects Built with HP-UX v 10.10/10.20 HP aC++
When your code overloads system header file functions, it is possible that C++ source files
that compile without error using HP aC++ for HP-UX 10.10 or 10.20 might not compile with a
subsequent compiler release. The example below shows why this potential problem exists.
#include <time.h>
time_t ff (time_t t) { return t; }
time_t ff (long t) { return t; } // This causes a duplicate.
time_t ff (char t) { return t; } // This causes an ambiguity.
int main () { long tt = ff (1L); return 0; }
ff is overloaded to take either a time_t, long, or char parameter. On a 10.10 or 10.20 system
where time_t is a long, the call to ff in main resolves to ff(time_t). On a 10.30 system,
however, where time_t is an int, the code fails to compile.
The following error is generated:
Error 225: "t1.C", line 4 # Ambiguous overloaded function call; more than
one acceptable function found. Two such functions that matched were "int
ff(char)" ["t1.C", line 5] and "int ff(int)" ["t1.C", line 3].
int main () { long tt = ff (1L); }
Binary Compatibility Between HP-UX 11.00 Bundle from the June 2000 Support
Plus Media Revision B.11.00.49 and HP-UX 11.00
An application that ran on the HP-UX 11.00 release will generally continue to run with the
same behavior on 32-bit and 64-bit HP-UX 11.00 bundle from the June 2000 Support Plus
media revision B.11.00.49, provided that any dependent shared libraries are also present. An
executable is a binary file that has been processed directly by the HP linker (ld) or indirectly
with the compiler, and can be run by the HP-UX loader (exec).
The following describe exceptions to binary compatibility between the 11.00 and June 2000
Support Plus media revision B.11.00.49 releases. These conditions can occur during your
development process, but rarely affect deployed applications.
Binary Incompatibilities without Changes
Binary Incompatibilities with Changes
Binary Incompatibilities without Changes
Under the following condition, when you compile your source code without any changes (to
source code, options, or makefiles), you create relocatable object files or executables that
cannot be moved back to a 11.00 system.