changeset 23049:7351f2c93389 stable

rethrow octave::exit_exception (bug #49304) * ov-oncleanup.cc (octave_oncleanup::~octave_oncleanup): Rethrow octave::exit_exception. * oct-parse.in.yy (parser::run, push_parser::run): Likewise.
author Olaf Till <i7tiol@t-online.de>
date Mon, 16 Jan 2017 15:15:21 -0500
parents 97a9fd0af57b
children 6e9f4f6283b7 7f91376af4d3
files libinterp/octave-value/ov-oncleanup.cc libinterp/parse-tree/oct-parse.in.yy
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/octave-value/ov-oncleanup.cc	Sun Jan 15 08:07:31 2017 -0800
+++ b/libinterp/octave-value/ov-oncleanup.cc	Mon Jan 16 15:15:21 2017 -0500
@@ -96,6 +96,10 @@
                msg.c_str ());
 
     }
+  catch (const octave::exit_exception&)
+    {
+      throw;
+    }
   catch (...) // Yes, the black hole.  We're in a d-tor.
     {
       // This shouldn't happen, in theory.
--- a/libinterp/parse-tree/oct-parse.in.yy	Sun Jan 15 08:07:31 2017 -0800
+++ b/libinterp/parse-tree/oct-parse.in.yy	Mon Jan 16 15:15:21 2017 -0500
@@ -4041,6 +4041,10 @@
         else
           error (e, "parse error in %s", file.c_str ());
       }
+    catch (const octave::exit_exception&)
+      {
+        throw;
+      }
     catch (octave::interrupt_exception &)
       {
         throw;
@@ -4101,6 +4105,10 @@
             else
               error (e, "parse error in %s", file.c_str ());
           }
+        catch (const octave::exit_exception&)
+          {
+            throw;
+          }
         catch (octave::interrupt_exception &)
           {
             throw;