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 17:30:18 GMT
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.

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