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;