stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: [STDCXX-709] ContainerData ctor and UserClass::from_char()
Date Wed, 26 Mar 2008 02:49:22 GMT
Eric Lemings wrote:
>  
> 
>> -----Original Message-----
>> From: Martin Sebor [mailto:msebor@gmail.com] On Behalf Of Martin Sebor
>> Sent: Monday, March 24, 2008 3:41 PM
>> To: dev@stdcxx.apache.org
>> 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


Mime
View raw message