stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Vitek" <tvi...@roguewave.com>
Subject RE: STDCXX-509
Date Wed, 17 Oct 2007 18:19:07 GMT

>Martin Sebor wrote:
>
>Travis Vitek wrote:
>> So I've been looking at the issue of the missing symbols for the
>> destructor, copy constructor and assignment operators for bad_cast,
>> bad_typeid and exceptions. Specifically, these symbols...
>
>So based on the config macros below, 4.1.3 shouldn't have had
>the definition of the exception copy assignment operator in it
>(i.e., it should have come from the runtime library), whereas
>4.2.0 should have it in it. Yet the 4.1.3 examples aren't
>finding the symbol either in the MSVC runtime (which is the
>same), or in the 4.2.0 dll?
>

Nope, you're backwards here.

As an example, the config.h for 4.1.3 does _not_ define
_RWSTD_NO_BAD_CAST_ASSIGNMENT [the define is commented out], so the
4.1.3 library will have bad_cast::operator=() defined. The 4.2.0 library
does have the macro defined, so the symbol omitted from the library.

>
>You are running the 4.1.3 examples with the 4.2.0 library,
>right? I.e., not 4.2.0 examples with the 4.1.3 library. Just
>checking.
>

Yes. As outlined in my previous e-mail, I'm running the 4.1.3
examples/tests with the 4.2.0 dll.

>Martin
>
>> 
>> The 4.1.3 config.h header has the following defines
>> 
>>   // #define _RWSTD_NO_BAD_CAST_ASSIGNMENT
>>   // #define _RWSTD_NO_BAD_CAST_COPY_CTOR
>>   #define _RWSTD_NO_BAD_CAST_DEFAULT_CTOR
>>   // #define _RWSTD_NO_BAD_CAST_DTOR
>>   #define _RWSTD_NO_BAD_CAST_WHAT
>> 
>>   // #define _RWSTD_NO_BAD_TYPEID_ASSIGNMENT
>>   // #define _RWSTD_NO_BAD_TYPEID_COPY_CTOR
>>   #define _RWSTD_NO_BAD_TYPEID_DEFAULT_CTOR
>>   // #define _RWSTD_NO_BAD_TYPEID_DTOR
>>   #define _RWSTD_NO_BAD_TYPEID_WHAT
>> 
>>   // #define _RWSTD_NO_EXCEPTION_ASSIGNMENT
>>   // #define _RWSTD_NO_EXCEPTION_COPY_CTOR
>>   // #define _RWSTD_NO_EXCEPTION_DEFAULT_CTOR
>>   // #define _RWSTD_NO_EXCEPTION_DTOR
>>   // #define _RWSTD_NO_EXCEPTION_WHAT
>> 
>> The 4.2.0 config.h header has the following defines
>> 
>>   #define _RWSTD_NO_BAD_CAST_ASSIGNMENT
>>   #define _RWSTD_NO_BAD_CAST_COPY_CTOR
>>   #define _RWSTD_NO_BAD_CAST_DEFAULT_CTOR
>>   #define _RWSTD_NO_BAD_CAST_DTOR
>>   #define _RWSTD_NO_BAD_CAST_WHAT
>> 
>>   #define _RWSTD_NO_BAD_TYPEID_ASSIGNMENT
>>   #define _RWSTD_NO_BAD_TYPEID_COPY_CTOR
>>   #define _RWSTD_NO_BAD_TYPEID_DEFAULT_CTOR
>>   #define _RWSTD_NO_BAD_TYPEID_DTOR
>>   #define _RWSTD_NO_BAD_TYPEID_WHAT
>> 
>>   #define _RWSTD_NO_EXCEPTION_ASSIGNMENT
>>   #define _RWSTD_NO_EXCEPTION_COPY_CTOR
>>   #define _RWSTD_NO_EXCEPTION_DEFAULT_CTOR
>>   #define _RWSTD_NO_EXCEPTION_DTOR
>>   #define _RWSTD_NO_EXCEPTION_WHAT
>> 
>> This is pretty consistent with what I'm expecting. I'm 
>looking into the
>> config tests now to see why we have a change in behavior 
>with the same
>> configuration.
>> 
>> Travis
>
>

Mime
View raw message