Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interpret EH actions properly #102685

Merged
merged 1 commit into from
Oct 11, 2022
Merged

Interpret EH actions properly #102685

merged 1 commit into from
Oct 11, 2022

Commits on Oct 5, 2022

  1. Interpret EH actions properly

    The EH actions stored in the LSDA follows the format of GCC except table
    (even for LLVM-generated code). An missing action in the table is the
    encoding for `Terminate`, see [1].
    
    The currently code interprets it as `None`, as a workaround for rust-lang#35011,
    an issue that seems to occur in LLVM 3.7 and not after 3.9. These are
    very old versions of LLVM and we don't support them anymore, so remove
    this workaround and interpret them properly.
    
    Note that LLVM currently does not emit any `Terminate` actions, but GCC
    does. Although GCC backend currently doesn't do unwinding, removing it
    preemptively would prevent future developers from wasting time to figure
    out what's wrong.
    
    [1]: https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/eh_personality.cc#L522-L526
    nbdd0121 committed Oct 5, 2022
    Configuration menu
    Copy the full SHA
    8bda133 View commit details
    Browse the repository at this point in the history