diff --git a/base/compiler/ssair/verify.jl b/base/compiler/ssair/verify.jl index 13656683e8ea9..ae294990b40d0 100644 --- a/base/compiler/ssair/verify.jl +++ b/base/compiler/ssair/verify.jl @@ -2,7 +2,8 @@ function maybe_show_ir(ir::IRCode) if isdefined(Core, :Main) - invokelatest(Core.Main.Base.display, ir) + # ensure we use I/O that does not yield, as this gets called during compilation + invokelatest(Core.Main.Base.show, Core.stdout, "text/plain", ir) end end diff --git a/base/compiler/validation.jl b/base/compiler/validation.jl index 2428ea8a38892..9a46a2411de13 100644 --- a/base/compiler/validation.jl +++ b/base/compiler/validation.jl @@ -253,7 +253,7 @@ end function is_valid_rvalue(@nospecialize(x)) is_valid_argument(x) && return true - if isa(x, Expr) && x.head in (:new, :splatnew, :the_exception, :isdefined, :call, :invoke, :invoke_modify, :foreigncall, :cfunction, :gc_preserve_begin, :copyast) + if isa(x, Expr) && x.head in (:new, :splatnew, :the_exception, :isdefined, :call, :invoke, :invoke_modify, :foreigncall, :cfunction, :gc_preserve_begin, :copyast, :new_opaque_closure) return true end return false