Re: Commit: cleanup src/af/util/xp


Subject: Re: Commit: cleanup src/af/util/xp
From: Dom Lachowicz (dominicl@seas.upenn.edu)
Date: Tue Aug 07 2001 - 15:34:50 CDT


Hi Paul,
 
> Since you asked ...

[snip]
 
> >From the following explanations in the online help, I *think* the
> exceptions
> are being ignored properly:
>
> -------------------------------------------------------------------
> Compiler Warning (level 3) C4290
> C++ Exception Specification ignored
>
> A function was declared using exception specification.
>
> At this time the implementation details of exception specification
> have
> not been standardized, and are accepted but not implemented in
> Microsoft
> Visual C++.
>
> Code compiled with ignored exception specifications may need to be
> recompiled and linked to be reused in future versions supporting
> exception
> specifications.
>
> You can avoid this warning by using the warning pragma:
>
> #pragma warning( disable : 4290 )
> -------------------------------------------------------------------
> Compiler Warning (level 1) C4530
> C++ exception handler used, but unwind semantics are not enabled.
> Specify
> -GX
>
> C++ exception handling was used but the Enable Exception Handling
> (/GX)
> option was not selected.
>
> When the /GX option has not been enabled, an object with automatic
> storage
> in the frame between the function doing the throw and the function
> catching the throw will not be destroyed. However, an object with
> automatic storage created in a try or catch block will be destroyed.
> -------------------------------------------------------------------

Yes, MSVC5 is an instance of a brain-dead compiler (tm). The exception throwing
syntax has been standard since '98 IIRC, but VC5 came out in '97 AFAIK so it's
not surprising that it might sputter about and complain at this syntax.
  
> You mentioned an exception-disabling switch -- I'm assuming that this is
>
> something we can conditionally set in win32.mak, based on the compiler
> used?
> If so, what is it? (I'd hate to be littering XP code with
> platform-specific
> #pragmas.)

You just have to #define ABI_DOESNT_SUPPORT_THROWS somewhere.

Dom



This archive was generated by hypermail 2b25 : Tue Aug 07 2001 - 15:34:52 CDT