From f14ef771a3bf146f57f7d26a3f62b78f5a07823a Mon Sep 17 00:00:00 2001 From: jacob gw Date: Tue, 13 Apr 2021 23:17:08 -0400 Subject: [PATCH] stage1: fix 8520 --- src/stage1/ir.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/stage1/ir.cpp b/src/stage1/ir.cpp index 71a233c964d9..a2ec0c346eaa 100644 --- a/src/stage1/ir.cpp +++ b/src/stage1/ir.cpp @@ -18896,6 +18896,14 @@ static IrInstGen *ir_analyze_instruction_merge_err_sets(IrAnalyze *ira, static IrInstGen *ir_analyze_instruction_bin_op(IrAnalyze *ira, IrInstSrcBinOp *bin_op_instruction) { IrBinOp op_id = bin_op_instruction->op_id; + if (bin_op_instruction->op1->child->value->special == ConstValSpecialUndef) { + ir_add_error_node(ira, bin_op_instruction->op1->base.source_node, buf_sprintf("use of undefined value here causes undefined behavior")); + return ira->codegen->invalid_inst_gen; + } + if (bin_op_instruction->op2->child->value->special == ConstValSpecialUndef) { + ir_add_error_node(ira, bin_op_instruction->op2->base.source_node, buf_sprintf("use of undefined value here causes undefined behavior")); + return ira->codegen->invalid_inst_gen; + } switch (op_id) { case IrBinOpInvalid: zig_unreachable();