stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Lemings" <Eric.Lemi...@roguewave.com>
Subject RE: STDCXX-600
Date Thu, 24 Jul 2008 17:10:03 GMT
 

> -----Original Message-----
> From: Eric Lemings 
> Sent: Thursday, July 24, 2008 10:57 AM
> To: 'dev@stdcxx.apache.org'
> Subject: RE: STDCXX-600
> 
>  
...
> > >> Have you tried changing this to something like:
> > >>
> > >>      _STD::out_of_range ex;
> > >>      ex._C_assign (what, 0);
> > >>      throw ex;
> > > 
> > > I did but I got some sort of weird compile error: invalid 
> > goto label or
> > > something like that.
> > 
> > That's most likely because you forgot to establish a scope
> > for the block of code containing the declaration of x (it's
> > illegal to jump past a declaration).
> 
> I tried that too.  :)

Well I could have sworn I tried that.  The following change works:

Index: src/exception.cpp
===================================================================
--- src/exception.cpp   (revision 679465)
+++ src/exception.cpp   (working copy)
@@ -691,7 +691,11 @@
         throw (_STD::length_error&)_STD::length_error ()._C_assign
(what, 0);

     case _RWSTD_ERROR_OUT_OF_RANGE:
-        throw (_STD::out_of_range&)_STD::out_of_range ()._C_assign
(what, 0);
+    {
+        _STD::out_of_range exc;
+        exc._C_assign (what, 0);
+        throw exc;
+    }

     case _RWSTD_ERROR_RUNTIME_ERROR:
         throw (_STD::runtime_error&)

Should I just check in this change for this particular exception for
now?  I suspect all other standard exceptions would also need to be
changed.

Brad.

Mime
View raw message