Eric Lemings wrote:
-----Original Message-----
From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
Sent: Monday, March 24, 2008 3:41 PM
To: [email protected]
Subject: Re: [STDCXX-709] ContainerData ctor and
UserClass::from_char()
...
try to create a small test case reproducing it. I.e., create an
archive lib that allocates memory using the new expression and
a program that replaces operators new and delete, links with the
library and attempts to deallocate the memory allocated by the
library. See if the right operators are being called.
I created a simple little test case.
http://people.apache.org/~elemings/test02.tar.gz
It works as it should on both platforms.
I also created a little test case in trunk/tests/containers that
links to the rwtest static library:
#include <rw_new.h>
#include <rw_value.h>
int main () {
UserClass* uc = UserClass::from_char("ab", 2);
return 0;
}
This test case exhibits the same problem in STDCXX-709.
But the errors (SIGABRT) in the tests listed in STDCXX-709 are
independent of the build type. They happen across the board in
aCC 6.16 builds. I went back and looked at builds with earlier
releases of aCC on IPF. It looks like these tests have been
failing with all versions of aCC we tested with since 6.0 but
they were not failing with 5.57 back in November 2007. We
might want to run a round builds with that compiler to see
what the results are with the head of trunk today.
It has something to do with the trunk/include/rw/_new.h header
but I'm still not sure exactly what the problem is.
In light of the above I'm guessing what we're seeing is a code
generation issue. The runtime between aCC 5.57 and 6.x is the
same (as long as the same -AA or -Aa is being used, which it
is). What's different, IIRC, is the C++ front end. aCC 5 was
based on the original HP front end while aCC 6 uses the EDG
front end. That's a major difference.
Martin