Mercurial > vim
comparison src/vim9execute.c @ 23673:6d35bc0f161e v8.2.2378
patch 8.2.2378: Vim9: no error message for dividing by zero
Commit: https://github.com/vim/vim/commit/99880f96cf444014d589fc1d99bb164deaba71ce
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 20 21:23:14 2021 +0100
patch 8.2.2378: Vim9: no error message for dividing by zero
Problem: Vim9: no error message for dividing by zero.
Solution: Give an error message. (issue https://github.com/vim/vim/issues/7704)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 20 Jan 2021 21:30:04 +0100 |
parents | 9ee9c4246a7f |
children | 423af0f7beae |
comparison
equal
deleted
inserted
replaced
23672:226d94848204 | 23673:6d35bc0f161e |
---|---|
2952 #endif | 2952 #endif |
2953 { | 2953 { |
2954 switch (iptr->isn_arg.op.op_type) | 2954 switch (iptr->isn_arg.op.op_type) |
2955 { | 2955 { |
2956 case EXPR_MULT: n1 = n1 * n2; break; | 2956 case EXPR_MULT: n1 = n1 * n2; break; |
2957 case EXPR_DIV: n1 = num_divide(n1, n2); break; | 2957 case EXPR_DIV: n1 = num_divide(n1, n2); |
2958 if (n2 == 0) | |
2959 goto on_error; | |
2960 break; | |
2958 case EXPR_SUB: n1 = n1 - n2; break; | 2961 case EXPR_SUB: n1 = n1 - n2; break; |
2959 case EXPR_ADD: n1 = n1 + n2; break; | 2962 case EXPR_ADD: n1 = n1 + n2; break; |
2960 default: n1 = num_modulus(n1, n2); break; | 2963 default: n1 = num_modulus(n1, n2); |
2964 if (n2 == 0) | |
2965 goto on_error; | |
2966 break; | |
2961 } | 2967 } |
2962 clear_tv(tv1); | 2968 clear_tv(tv1); |
2963 clear_tv(tv2); | 2969 clear_tv(tv2); |
2964 tv1->v_type = VAR_NUMBER; | 2970 tv1->v_type = VAR_NUMBER; |
2965 tv1->vval.v_number = n1; | 2971 tv1->vval.v_number = n1; |