-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
Prevent aborting guard from aborting the process in a forced unwind #104070
Merged
Merged
Changes from 1 commit
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
47171e0
Use `landingpad filter` to encode aborting landing pad
nbdd0121 6223753
Parse catch filter in personality function
nbdd0121 37f7d32
Prevent aborting guard from aborting the process in a forced unwind
nbdd0121 ecd04fd
Add test for unwinding past terminating POF
nbdd0121 9792636
Fix num reserved clauses for landing pad
nbdd0121 91afde5
Add todo for filter landing pad
nbdd0121 16abe6c
Fix codegen test
nbdd0121 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add todo for filter landing pad
- Loading branch information
commit 91afde57a28b1619f140fbe8463d150ce7c8adca
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems incorrect?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The proper way to encode this in GCC would be
<<<eh_filter (NULL)>>>
(or even better,<<<eh_must_not_throw (terminate)>>>
, which is something we hoped for for LLVM!). But I don't think there is support in libgccjit yet, @antoyo to confirm?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I'll take care of this. I'm not done with supporting unwinding yet.
But, please add a
// TODO(antoyo): generate the correct landing pad
.For my personal information, what are
<<<eh_filter (NULL)>>>
and<<<eh_must_not_throw (terminate)>>>
? I've never seen this syntax. Are they C attributes?I don't remember exactly what
filter
is doing, but the proper implementation of this method might be very similar ascleanup_landing_pad
, but without adding toself.cleanup_blocks
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are part of generic/gimple: https://godbolt.org/z/5adjbahnd