-
Notifications
You must be signed in to change notification settings - Fork 1.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
Brodes/seh flow overhaul2 #17676
Open
bdrodes
wants to merge
24
commits into
github:main
Choose a base branch
from
microsoft:brodes/seh_flow_overhaul2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Brodes/seh flow overhaul2 #17676
Changes from 23 commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
652b74d
Altering TExceptionEdge to include SEH and regular C++ exceptions, an…
bdrodes 82cdd02
Overhaul of IR exception handling to account for SEH and C++ exceptions.
bdrodes a818346
Fixing bug in translated call edge generation.
bdrodes a2ede08
Finalizing a model for throwing and non-throwing functions.
bdrodes 0ed72d1
Propagating the exception kind into getExceptionSuccessorInstruction
bdrodes e3d0015
updating getNextHandler logic.
bdrodes 7a3ab8c
Review updates to EdgeKind.qll
bdrodes d0a54a3
Review updates.
bdrodes fcff607
PR review corrections.
bdrodes fdf5ac6
Formatting.
bdrodes a053519
Removing SEH load exceptions for var args and lambda translations
bdrodes e86c764
Updated comments and formatting.
bdrodes a40343e
Updating comments.
bdrodes cc4b280
Comments and changed char pred (moved up to abstract class)
bdrodes fb16db2
Formatting.
bdrodes 781a9b7
Typo
bdrodes 30810ce
Merge branch 'main' into brodes/seh_flow_overhaul2
bdrodes a498c87
adding change log
bdrodes aeeafbc
Merge branch 'brodes/seh_flow_overhaul2' of https://github.com/micros…
bdrodes 61b1fef
Comments
bdrodes f85ba7a
Updating docs
bdrodes 9dc776e
Type in comments.
bdrodes 3f01e4d
changing isSEH to isSeh to match conventions.
bdrodes 222c9f2
Style changes.
bdrodes 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
There are no files selected for viewing
4 changes: 4 additions & 0 deletions
4
cpp/ql/lib/change-notes/2024-10-24-ir-seh-exception-handling-updates.md
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
--- | ||
category: minorAnalysis | ||
--- | ||
* Added support for structured exception handling (SEH). As a result, dataflow queries may have more results in code bases that use SEH. |
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
What is the reason for doing with with a boolean instead of just having two separate kinds of edges (one for normal exceptions and one for SEH exceptions)?
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.
We want a single edge concept for all exceptions. A problem we have had generally with SEH vs traditional is the concept has been handled by different mechanisms making it error prone to do anything with exceptions as it is easy to forget the 'other' exception.