stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: 4.2.0-rc-6, final candidate
Date Tue, 16 Oct 2007 14:46:36 GMT
Farid Zaripov wrote:
>> -----Original Message-----
>> From: Martin Sebor [mailto:sebor@roguewave.com] 
>> Sent: Tuesday, October 16, 2007 4:38 PM
>> To: stdcxx-dev@incubator.apache.org
>> Subject: Re: 4.2.0-rc-6, final candidate
>>
>>> Regarding binary compatibility, after upgrading from 4.1.3 to the 
>>> latest 4.2.0 I'm getting invalid pointer errors from glibc 
>> in some of 
>>> my programs. I reproduced the same error in the except example in 
>>> 4.1.3. Unfortunately, I don't have time to debug it right now.
>> Yowza! That's not good. We not fix that ASAP. Farid, could 
>> any of these changes be causing the incompatibility?
>>
>>    http://svn.apache.org/viewvc?view=rev&revision=549766
>>    http://svn.apache.org/viewvc?view=rev&revision=549586
>>    http://svn.apache.org/viewvc?view=rev&revision=549584
> 
>   I have checked the except.cpp example on MSVC 7.1 and found
> that the problem was caused by this change:
> http://svn.apache.org/viewvc?rev=583667&view=rev
> 
> ----------------
>    catch (const std::ios::failure &e) {
>        std::cout << "Caught an exception: " << e.what () << std::endl;
>    }
> ----------------
> 
>   Here instead std::exception::what() invoked
> std::ios::failure::~failure().

Oh, crud! I was afraid this would cause problems but it didn't
occurr to me that switching the order of virtual functions is
a binary incompatible change. Makes sense. Doh!

Okay, thanks a lot for looking into it, I'll work on a fix.
I think the safe thing to do will be to enable the change
just for Darwin and leave it the way it was for all other
platforms.

Martin

Mime
View raw message