| ... | @@ -542,8 +542,11 @@ static LLVMValueRef gen_arithmetic_bin_op(CodeGen *g, AstNode *source_node, | ... | @@ -542,8 +542,11 @@ static LLVMValueRef gen_arithmetic_bin_op(CodeGen *g, AstNode *source_node, |
| 542 | return LLVMBuildShl(g->builder, val1, val2, ""); | 542 | return LLVMBuildShl(g->builder, val1, val2, ""); |
| 543 | case BinOpTypeBitShiftRight: | 543 | case BinOpTypeBitShiftRight: |
| 544 | case BinOpTypeAssignBitShiftRight: | 544 | case BinOpTypeAssignBitShiftRight: |
| | 545 | assert(op1_type->id == TypeTableEntryIdInt); |
| | 546 | assert(op2_type->id == TypeTableEntryIdInt); |
| | 547 | |
| 545 | add_debug_source_node(g, source_node); | 548 | add_debug_source_node(g, source_node); |
| 546 | if (op1_type->id == TypeTableEntryIdInt) { | 549 | if (op1_type->data.integral.is_signed) { |
| 547 | return LLVMBuildAShr(g->builder, val1, val2, ""); | 550 | return LLVMBuildAShr(g->builder, val1, val2, ""); |
| 548 | } else { | 551 | } else { |
| 549 | return LLVMBuildLShr(g->builder, val1, val2, ""); | 552 | return LLVMBuildLShr(g->builder, val1, val2, ""); |