HP aC++/HP C A.06.25 Release Notes

Table Of Contents
4 Compatibility Information
Maintaining binary compatibility is a key release requirement for new versions of HP
aC++. The compiler has maintained the same object model and calling convention and
remains compatible with the HP-UX runtime in the code that it generates as well as its
intrinsic runtime library (libCsup) across the various releases of HP aC++ and its
run-time patch stream.
aC++ Standard Conformance and Compatibility Changes
The following document provides the deattails of the differences that you can experience
when upgrading from HP aC++ Version 5.x to HP aC++ Version 6.0:
http://h21007.www2.hp.com/portal/site/dspp/
menuitem.863c3e4cbcdc3f3515b49c108973a801/
?ciid=2708d7c682f02110d7c682f02110275d6e10RCRD
Caliper Compatibility
For binaries containing objects generated with version A.05.38 of the compiler, it is
recommended that you use Caliper version 2.1 for performance measurements and
PBO. You can download Caliper 2.1 from www.hp.com/go/caliper.
WDB Compatibility
It is recommended that you use the latest version of the WDB debugger. You can obtain
the latest information on the debugger at Developer and Solution Partner page of the
HP web site: www.hp.com/go/wdb.
Difference in Class Size When Compiling in 32-bit and 64-bit Mode
The size of a class containing any virtual functions varies when compiled in 32-bit
mode versus 64-bit mode. The difference in size is caused by the virtual table pointer
(a pointer to an internal compiler table) in the class object. (The pointer is created for
any class containing one or more virtual functions.)
When compiling the following example in 32-bit mode, the output is 8. In 64-bit mode,
the output is 16.
extern "C" int printf(const char *,...);
class A {
int a;
public:
virtual void foo(); //virtual function foo, part of class A
};
void A::foo() {
return;
}
aC++ Standard Conformance and Compatibility Changes 45