| ... | @@ -9014,7 +9014,7 @@ static IrInstSrc *ir_gen_switch_expr(IrBuilderSrc *irb, Scope *scope, AstNode *n | ... | @@ -9014,7 +9014,7 @@ static IrInstSrc *ir_gen_switch_expr(IrBuilderSrc *irb, Scope *scope, AstNode *n |
| 9014 | return irb->codegen->invalid_inst_src; | 9014 | return irb->codegen->invalid_inst_src; |
| 9015 | } | 9015 | } |
| 9016 | else_prong = prong_node; | 9016 | else_prong = prong_node; |
| 9017 | } else if (prong_item_count == 1 && | 9017 | } else if (prong_item_count == 1 && |
| 9018 | prong_node->data.switch_prong.items.at(0)->type == NodeTypeSymbol && | 9018 | prong_node->data.switch_prong.items.at(0)->type == NodeTypeSymbol && |
| 9019 | buf_eql_str(prong_node->data.switch_prong.items.at(0)->data.symbol_expr.symbol, "_")) { | 9019 | buf_eql_str(prong_node->data.switch_prong.items.at(0)->data.symbol_expr.symbol, "_")) { |
| 9020 | if (underscore_prong) { | 9020 | if (underscore_prong) { |
| ... | @@ -26068,7 +26068,7 @@ static IrInstGen *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstSrcSlice *i | ... | @@ -26068,7 +26068,7 @@ static IrInstGen *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstSrcSlice *i |
| 26068 | if (array_type->data.pointer.ptr_len == PtrLenC) { | 26068 | if (array_type->data.pointer.ptr_len == PtrLenC) { |
| 26069 | array_type = adjust_ptr_len(ira->codegen, array_type, PtrLenUnknown); | 26069 | array_type = adjust_ptr_len(ira->codegen, array_type, PtrLenUnknown); |
| 26070 | | 26070 | |
| 26071 | // C pointers are allowzero by default. | 26071 | // C pointers are allowzero by default. |
| 26072 | // However, we want to be able to slice them without generating an allowzero slice (see issue #4401). | 26072 | // However, we want to be able to slice them without generating an allowzero slice (see issue #4401). |
| 26073 | // To achieve this, we generate a runtime safety check and make the slice type non-allowzero. | 26073 | // To achieve this, we generate a runtime safety check and make the slice type non-allowzero. |
| 26074 | if (array_type->data.pointer.allow_zero) { | 26074 | if (array_type->data.pointer.allow_zero) { |
| ... | @@ -26363,7 +26363,7 @@ static IrInstGen *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstSrcSlice *i | ... | @@ -26363,7 +26363,7 @@ static IrInstGen *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstSrcSlice *i |
| 26363 | | 26363 | |
| 26364 | if (type_is_invalid(ptr_val->value->type)) | 26364 | if (type_is_invalid(ptr_val->value->type)) |
| 26365 | return ira->codegen->invalid_inst_gen; | 26365 | return ira->codegen->invalid_inst_gen; |
| 26366 | | 26366 | |
| 26367 | ir_build_assert_non_null(ira, &instruction->base.base, ptr_val); | 26367 | ir_build_assert_non_null(ira, &instruction->base.base, ptr_val); |
| 26368 | } | 26368 | } |
| 26369 | | 26369 | |