[SILOptimizer] Don't diagnose unreachable instructions that belong to… #63390
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.
… no-return func
The pass is attempting to diagnose any user-written code that appears after the result of no-return function call. It has to skip any instructions that happen after the no-return call but are associated with it, such as
alloc_stack
to pass result of such call indirectly.This helps to avoid extraneous diagnostics for synthesized code i.e. a result builder with
buildExpression
:The following example would produce extraneous warning:
because it is translated into:
In such cases all instructions that follow
fatalError()
call are synthesized except toalloc_stack $Never
which is passed tobuildExpression
, that instruction is anchored on thefatalError()
itself which is where the diagnostic would point, which is incorrect.Resolves: rdar://104931999