Skip to content

Unimplemented: catch_unwind intrinsic #267

@danielsn

Description

@danielsn

Only remaining issue from #158

https://doc.rust-lang.org/std/intrinsics/fn.try.html
https://doc.rust-lang.org/src/core/intrinsics.rs.html#1717
https://doc.rust-lang.org/std/panic/fn.catch_unwind.html

try makes a best-effort attempt to recover from panics - if the code in the first function pointer crashes with a panic, rust will try to run the cleanup code in the second function pointer.

It is not clear to me what the right semantics are here. For now, handling this as a unimplemented allows us to soundly move forward, but it might be more accurate to actually call the first function pointer. I don't know of a nice way to do the unwinding on panic - maybe CBMC has a mechanism?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions