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-509
Date Wed, 17 Oct 2007 18:06:11 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?
> 
> 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.

I guess you are given that Farid is seeing the same unsats.

Could 4.1.3 be linking with some additional/different runtime
(archive) libraries than 4.2.0? That still doesn't explain why
the symbols aren't found in 4.2.0 if they're defined there
(according to the config macros).

Martin

> 
> Martin
> 
>>
>>>  public: class exception & __thiscall exception::operator=(class
>> exception const &)
>>>  public: __thiscall exception::exception(class exception const &)
>>>  public: __thiscall exception::exception(void)
>>>  public: virtual __thiscall exception::~exception(void)
>>>  public: virtual char const * __thiscall exception::what(void)const
>>>
>>>  public: class bad_cast & __thiscall bad_cast::operator=(class
>> bad_cast const &)
>>>  public: __thiscall bad_cast::bad_cast(class bad_cast const &)
>>>  public: virtual __thiscall bad_cast::~bad_cast(void)
>>>
>>>  public: class bad_typeid & __thiscall bad_typeid::operator=(class
>> bad_typeid const &)
>>>  public: __thiscall bad_typeid::bad_typeid(class bad_typeid const &)
>>>  public: virtual __thiscall bad_typeid::~bad_typeid(void)
>>>
>>
>> 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