Skip to content

Conversation

@compnerd
Copy link
Member

This was broken in ba1509d. The Win64
frame would not perform the setup of the Swift async context parameter
but would tear down the setup in the epilogue resulting in crashes.
This ensures that we do the full setup when we do the tear down.
Although this is non-conforming to the Win64 calling convention, it
corrects the setup and exposes the actual issue that the change
introduced: incorrect frame setup.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D104246

(cherry picked from commit 17bdc0f)

This was broken in ba1509d.  The Win64
frame would not perform the setup of the Swift async context parameter
but would tear down the setup in the epilogue resulting in crashes.
This ensures that we do the full setup when we do the tear down.
Although this is non-conforming to the Win64 calling convention, it
corrects the setup and exposes the actual issue that the change
introduced: incorrect frame setup.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D104246

(cherry picked from commit 17bdc0f)
@compnerd
Copy link
Member Author

@swift-ci please test

@compnerd
Copy link
Member Author

Backporting this from stable/20210726 to 5.5 for the next release - this results in XCTest crashing upon test completion in many cases.

@compnerd
Copy link
Member Author

CC: @shahmishal

@compnerd compnerd changed the title X86: balance the frame prologue and epilogue on Win64 [5.5] X86: balance the frame prologue and epilogue on Win64 Jan 20, 2022
@shahmishal shahmishal merged commit e560cdd into swiftlang:swift/release/5.5 Jan 20, 2022
@compnerd compnerd deleted the 5.5-frame-layout branch January 20, 2022 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants