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

Rollup of 8 pull requests #102920

Closed
wants to merge 26 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3d28a1a
Warn about safety of `fetch_update`
Riolku Sep 14, 2022
2ea770d
fs::get_path solarish version.
devnexen Sep 24, 2022
2c72ea7
Stabilize map_first_last
est31 Sep 12, 2022
8bda133
Interpret EH actions properly
nbdd0121 Oct 5, 2022
b0b072d
ADD - codegen_ssa initial diags translations machinery
JhonnyBillM Oct 4, 2022
4e0de53
ADD - migrate lib.def write fatal error
JhonnyBillM Aug 25, 2022
0a2d7f8
UPDATE - LibDefWriteFailure to accept type instead of formatted string
JhonnyBillM Aug 27, 2022
086e70f
UPDATE - migrate linker.rs to new diagnostics infra
JhonnyBillM Oct 7, 2022
d9197db
UPDATE - migrate write.rs to new diagnostics infra
JhonnyBillM Aug 28, 2022
67eb01c
UPDATE - codege-ssa errors to new Diagnostic macro name
JhonnyBillM Sep 10, 2022
7548d95
UPDATE - resolve fixme and emit errors via Handler
JhonnyBillM Sep 10, 2022
0f97d4a
DELETE - unused error after PR# 100101 was merged
JhonnyBillM Sep 13, 2022
12aa84b
ADD - initial port of link.rs
JhonnyBillM Oct 3, 2022
a25f939
Address PR comments
JhonnyBillM Oct 4, 2022
13d4f27
ADD - implement IntoDiagnostic for thorin::Error wrapper
JhonnyBillM Oct 4, 2022
c1c159f
Unify tcx.constness and param env constness checks
compiler-errors Oct 9, 2022
6826028
fix #102878
TaKO8Ki Oct 10, 2022
152cd63
Report duplicate definitions in trait impls during resolution.
cjgillot Aug 10, 2022
6be5db8
Rollup merge of #100387 - cjgillot:hygiene-trait-impl, r=petrochenkov
Dylan-DPC Oct 11, 2022
9bf2e53
Rollup merge of #101727 - est31:stabilize_map_first_last, r=m-ou-se
Dylan-DPC Oct 11, 2022
3f4b987
Rollup merge of #101774 - Riolku:atomic-update-aba, r=m-ou-se
Dylan-DPC Oct 11, 2022
16914c9
Rollup merge of #102227 - devnexen:solarish_get_path, r=m-ou-se
Dylan-DPC Oct 11, 2022
4be1c94
Rollup merge of #102612 - JhonnyBillM:migrate-codegen-ssa-to-diagnost…
Dylan-DPC Oct 11, 2022
638ce35
Rollup merge of #102685 - nbdd0121:unwind, r=m-ou-se
Dylan-DPC Oct 11, 2022
18325e9
Rollup merge of #102830 - compiler-errors:constness-parity, r=fee1-dead
Dylan-DPC Oct 11, 2022
2e26805
Rollup merge of #102893 - TaKO8Ki:fix-102878, r=davidtwco
Dylan-DPC Oct 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
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 #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
commit 8bda13367e4987937ddc2ba9bbe01b5f7a4cce3e
5 changes: 2 additions & 3 deletions library/std/src/personality/dwarf/eh.rs
Original file line number Diff line number Diff line change
@@ -98,9 +98,8 @@ pub unsafe fn find_eh_action(lsda: *const u8, context: &EHContext<'_>) -> Result
}
}
}
// Ip is not present in the table. This should not happen... but it does: issue #35011.
// So rather than returning EHAction::Terminate, we do this.
Ok(EHAction::None)
// Ip is not present in the table. This indicates a nounwind call.
Ok(EHAction::Terminate)
} else {
// SjLj version:
// The "IP" is an index into the call-site table, with two exceptions: