diff --git a/base/compiler/ssair/verify.jl b/base/compiler/ssair/verify.jl index 66fde426347bd..c281aa4b7786f 100644 --- a/base/compiler/ssair/verify.jl +++ b/base/compiler/ssair/verify.jl @@ -43,6 +43,12 @@ function check_op(ir::IRCode, domtree::DomTree, @nospecialize(op), use_bb::Int, error("") end end + + use_inst = ir[op] + if isa(use_inst[:inst], Union{GotoIfNot, GotoNode, ReturnNode}) + @verify_error "At statement %$use_idx: Invalid use of value statement or terminator %$(op.id)" + error("") + end elseif isa(op, GlobalRef) if !isdefined(op.mod, op.name) || !isconst(op.mod, op.name) @verify_error "Unbound GlobalRef not allowed in value position"