about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorVadim Chugunov <vadimcn@gmail.com>2016-07-24 22:09:56 -0700
committerVadim Chugunov <vadimcn@gmail.com>2016-07-25 09:37:41 -0700
commit5fbcf08dd8cfc347c13d84c8ea20e3bfce6793fc (patch)
treee875ccb266687873bd792feb5d3aee2a470ffa63 /src
parent2c50f4e484d1c871538ee99032ec2986177b8062 (diff)
downloadrust-5fbcf08dd8cfc347c13d84c8ea20e3bfce6793fc.tar.gz
rust-5fbcf08dd8cfc347c13d84c8ea20e3bfce6793fc.zip
Looser LSDA parsing
Diffstat (limited to 'src')
-rw-r--r--src/libpanic_unwind/dwarf/eh.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/libpanic_unwind/dwarf/eh.rs b/src/libpanic_unwind/dwarf/eh.rs
index 32fdf5c2048..1e9e9e30f5c 100644
--- a/src/libpanic_unwind/dwarf/eh.rs
+++ b/src/libpanic_unwind/dwarf/eh.rs
@@ -108,10 +108,9 @@ pub unsafe fn find_eh_action(lsda: *const u8, context: &EHContext) -> EHAction {
                 }
             }
         }
-        // If ip is not present in the table, call terminate.  This is for
-        // a destructor inside a cleanup, or a library routine the compiler
-        // was not expecting to throw
-        EHAction::Terminate
+        // Ip is not present in the table.  This should not hapen... but it does: issie #35011.
+        // So rather than returning EHAction::Terminate, we do this.
+        EHAction::None
     } else {
         // SjLj version:
         // The "IP" is an index into the call-site table, with two exceptions: