-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Pass correct SubExpr as source location when emitting Load of LValue. #79524
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
Conversation
@swift-ci please smoke test Linux |
@swift-ci please smoke test macOS |
@swift-ci please test Windows |
@adrian-prantl the test doesn't contain anything from the |
The option -sil-print-debuginfo-verbose will print the values of the fields, implicit, and autoGenerated for a SILLocation, as well as whether the SILLocation is considered hidden from debug information by calling SILLocation::isHiddenFromDebugInfo()
@swift-ci test |
d642678
to
7b87370
Compare
@swift-ci please test |
@swift-ci please smoke test |
When emitting an LValue of a LoadExpr during SILGen, the Expression passed as a SILLocation for the LValue was the parent LoadExpr instead of the SubExpr that contains the LValue for the load. This leads to the SILLocation to be marked as implicit, because a LoadExpr is always an implicit expression. An implicit SILLocation is not emitted when doing IRGen as it is considered to be hidden from debug info and thus we lose the debug location for the LValue of a LoadExpr. This patch fixes this issue.
7b87370
to
52a5ed8
Compare
@swift-ci please smoke test macOS |
@swift-ci please smoke test Linux |
@swift-ci please test Windows |
@swift-ci test windows |
@swift-ci test |
@swift-ci please test Windows |
Does the |
@adrian-prantl looks like the previous builds also failed on the same tests for the same reasons, so this patch has nothing to do with the yield_once test failing. We can safely merge this. |
When emitting an LValue of a LoadExpr during SILGen, the Expression passed as a SILLocation for the LValue was the parent LoadExpr instead of the SubExpr that contains the LValue for the load. This leads to the SILLocation to be marked as implicit, because a LoadExpr is always an implicit expression.
An implicit SILLocation is not emitted when doing IRGen as it is considered to be hidden from debug info and thus we lose the debug location for the LValue of a LoadExpr.
This patch fixes this issue and thus, preserves the location information.