Skip to content

C++: Generate SEH edges for pointer dereference loads/stores in __try blocks #19775

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

Merged
merged 4 commits into from
Jun 16, 2025

Conversation

jketema
Copy link
Contributor

@jketema jketema commented Jun 16, 2025

I'm currently limited to cases where a pointer deference is involved, and not doing anything for loads/stores that are part of specific initializations (like in adafc7d).

@github-actions github-actions bot added the C++ label Jun 16, 2025
or
expr instanceof PointerDereferenceExpr and
kind instanceof SehExceptionEdge and
exists(MicrosoftTryStmt tryStmt | tryStmt.getStmt() = expr.getEnclosingStmt().getParent*()) and
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably lift this out to a predicate at this point so that we don't accidentally write the wrong predicate you fixed in 1b2813d

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've unified the two in TranslatedExpr.qll.

@jketema jketema marked this pull request as ready for review June 16, 2025 13:04
@jketema jketema requested a review from a team as a code owner June 16, 2025 13:04
@jketema jketema added no-change-note-required This PR does not need a change note labels Jun 16, 2025
Copy link
Contributor

@MathiasVP MathiasVP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM if DCA is happy!

@jketema
Copy link
Contributor Author

jketema commented Jun 16, 2025

DCA is happy.

@jketema jketema merged commit 4bed44d into github:main Jun 16, 2025
20 of 21 checks passed
@jketema jketema deleted the seh-2 branch June 16, 2025 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C++ no-change-note-required This PR does not need a change note
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants