mirror of
https://github.com/vim/vim.git
synced 2025-10-03 05:14:07 -04:00
patch 8.1.0990: floating point exception with "%= 0" and "/= 0"
Problem: Floating point exception with "%= 0" and "/= 0". Solution: Avoid dividing by zero. (Dominique Pelle, closes #4058)
This commit is contained in:
@@ -21,7 +21,7 @@ com! -nargs=1 Xout call Xout(<args>)
|
||||
"
|
||||
" Create a script that consists of the body of the function a:funcname.
|
||||
" Replace any ":return" by a ":finish", any argument variable by a global
|
||||
" variable, and and every ":call" by a ":source" for the next following argument
|
||||
" variable, and every ":call" by a ":source" for the next following argument
|
||||
" in the variable argument list. This function is useful if similar tests are
|
||||
" to be made for a ":return" from a function call or a ":finish" in a script
|
||||
" file.
|
||||
@@ -1457,6 +1457,43 @@ func Test_compound_assignment_operators()
|
||||
let x .= 'n'
|
||||
call assert_equal('2n', x)
|
||||
|
||||
" Test special cases: division or modulus with 0.
|
||||
let x = 1
|
||||
let x /= 0
|
||||
if has('num64')
|
||||
call assert_equal(0x7FFFFFFFFFFFFFFF, x)
|
||||
else
|
||||
call assert_equal(0x7fffffff, x)
|
||||
endif
|
||||
|
||||
let x = -1
|
||||
let x /= 0
|
||||
if has('num64')
|
||||
call assert_equal(-0x7FFFFFFFFFFFFFFF, x)
|
||||
else
|
||||
call assert_equal(-0x7fffffff, x)
|
||||
endif
|
||||
|
||||
let x = 0
|
||||
let x /= 0
|
||||
if has('num64')
|
||||
call assert_equal(-0x7FFFFFFFFFFFFFFF - 1, x)
|
||||
else
|
||||
call assert_equal(-0x7FFFFFFF - 1, x)
|
||||
endif
|
||||
|
||||
let x = 1
|
||||
let x %= 0
|
||||
call assert_equal(0, x)
|
||||
|
||||
let x = -1
|
||||
let x %= 0
|
||||
call assert_equal(0, x)
|
||||
|
||||
let x = 0
|
||||
let x %= 0
|
||||
call assert_equal(0, x)
|
||||
|
||||
" Test for string
|
||||
let x = 'str'
|
||||
let x .= 'ing'
|
||||
|
Reference in New Issue
Block a user