Skip to content

[6.0] [SILVerifier] Add detection of conflicting debug variables #72576

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

Snowy1803
Copy link
Member

  • Explanation: Some debug information was generated incorrectly (nested tuples in prolog, conflict in switch statement, no specialization of debug variable type). This PR fixes those issues and adds a verifier check to ensure the assumptions of IRGenDebugInfo aren't broken.
  • Scope: Fixes debug value instructions in SIL
  • Original PR: [SILVerifier] Add detection of conflicting debug variables #72397
  • Risk: The SILVerifier check could catch some issues we haven't detected yet, but it would be helpful to know about those issues as soon as possible
  • Testing: The SILVerifier check ensures all debug info is correct. The Source Compatibility Suite is passing
  • Issue: rdar://124555787
  • Reviewer: @adrian-prantl

For address-only types, a temporary was emitted with the same debug variable
and same scope as the instruction it is moved to after entering a shared case,
but it would have a different type, which would create a conflict.
The better way to fix this would probably to use a different scope for both,
but the variable is moved immediately anyway.

(cherry picked from commit 04ab380)
@Snowy1803 Snowy1803 requested a review from a team as a code owner March 26, 2024 00:19
@Snowy1803
Copy link
Member Author

@swift-ci test

@Snowy1803
Copy link
Member Author

@swift-ci please test windows platform

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.

2 participants