Fix regression in generic_bitcast with Union{} arguments. #47605
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.
#47170 introduced a regression with bitcasts of error values (i.e.
::Union{}
), resulting in a failed assertion/segfault:This manifested on PkgEval in the testing of ANOVAapprox.jl (as well as Gtk.jl, and probably others), https://s3.amazonaws.com/julialang-reports/nanosoldier/pkgeval/by_date/2022-11/15/ANOVAapprox.primary.log, which contains code like:
Compiling this results in essentially:
... where inference thinks that %32 produces a Int64, but during codegen it turns out that
π (%4::Int32, Int64)
producesUnion{}
(as determined byconvert_julia_type
) which then crashesbitcast
as seen above.