Skip to content

Turn off structurize-returns when cleanup blocks are present. #4927

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

Conversation

adam-yang
Copy link
Contributor

@adam-yang adam-yang commented Jan 11, 2023

structurize-returns uses scope-end blocks recorded during codegen to transform the control flow. When "cleanup" blocks are generated (for example for lifetime-markers), structurize-returns as is cannot transform the control flow safely. This change disables structurize-returns and emits a warning when cleanup blocks are detected in the affected function.

@adam-yang adam-yang requested a review from python3kgae January 11, 2023 01:01
@AppVeyorBot
Copy link

@AppVeyorBot
Copy link

@AppVeyorBot
Copy link

@adam-yang adam-yang merged commit 93f43ec into microsoft:main Jan 11, 2023
pow2clk pushed a commit that referenced this pull request Feb 27, 2023
structurize-returns uses scope-end blocks recorded during codegen to transform the control flow. When "cleanup" blocks are generated (for example for lifetime-markers), structurize-returns as is cannot transform the control flow safely. This change disables structurize-returns and emits a warning when cleanup blocks are detected in the affected function.

(cherry picked from commit 93f43ec)
pow2clk pushed a commit that referenced this pull request Feb 27, 2023
Merge relevant changes into release 1.7.2212

7ce4986 Fix opt.exe external lib loading (#5049)
8f4d1f4 PIX: DxcPixDxilInstructionOffsets should operate on libs (#5046)
0795b94 Fix AppVeyor Linux tests failing loading dxil.so (#5024)
6d3574a Remove SO version from unix binaries (#5010)
6d480fd Allow libdxcompiler.so and dxc to find libdxil.so (#5004)
d751bd8 Correct WinAdapter path assumptions in public headers (#5003)
484f1b0 Fix instruction order issue in scalarizer (#5001)
d9d83d0 Fix two issues found in our internal build (#5002)
c8603e4 Added a workaround for PDBs with empty defines. (#4945)
073d860 [bug] Fix memory leak in dxil validator (#4966)
87fc5b5 PIX: Symbol manager: don't allow static members to contribute to member offsets (#4952)
8588ecb Turn off structurize-returns when cleanup blocks are present. (#4927)
bac7aa7 build: disable LLVM_ENABLE_TERMINFO by default. (#4908)
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