[4.0] Prevent _swift_runtime_on_report from having its arguments optimized out. #10457
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prevent _swift_runtime_on_report from having its arguments optimized out. Turns out an empty "asm volatile" isn't enough and we need to explicitly ask that the arguments are also not optimized out.
• Explanation: The call to the Swift runtime issue reporting debugger hook can get optimized in a way that we don't pass the correct values to the debugger. The fix forces the compiler not to optimize the arguments out.
• Scope: When the debugger is not attached, the bug doesn't affect anything. With the LLDB integration of Swift runtime issues, the bug can cause invalid data to be passed to the debugger.
• Radar: rdar://problem/32905453
• Risk: Very low risk. The fix just prevents the compiler from optimizing arguments away.
• Testing: I verified that an optimized build of Swift standard library correctly passes the arguments and provides the info to the debugger.