annotate runtime/compiler/splint.vim @ 30940:5bc99d85f773 v9.0.0804

patch 9.0.0804: crash when trying to divide a number by -1 Commit: https://github.com/vim/vim/commit/cdef1cefa2a440911c727558562f83ed9b00e16b Author: Bram Moolenaar <Bram@vim.org> Date: Thu Oct 20 14:17:18 2022 +0100 patch 9.0.0804: crash when trying to divide a number by -1 Problem: Crash when trying to divice the largest negative number by -1. Solution: Handle this case specifically.
author Bram Moolenaar <Bram@vim.org>
date Thu, 20 Oct 2022 15:30:03 +0200
parents 2704c4e3e20a
children e1df51f68736
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim compiler file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Compiler: splint/lclint (C source code checker)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 " Splint Home: http://www.splint.org/
17571
2704c4e3e20a Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 2034
diff changeset
5 " Last Change: 2019 Jul 23
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 255
diff changeset
6 " $Revision: 1.3 $
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 if exists("current_compiler")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 let current_compiler = "splint"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 if exists(":CompilerSet") != 2 " older Vim always used :setlocal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 command -nargs=* CompilerSet setlocal <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 let s:cpo_save = &cpo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 set cpo-=C
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 " adapt this if you want to check more than one file at a time.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 " put command line options in .splintrc or ~/.splintrc
17571
2704c4e3e20a Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 2034
diff changeset
22 CompilerSet makeprg=splint\ %:S
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 " Note: when using the new array bounds checking flags: Each warning
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 " usually has several lines and several references to source code mostly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 " within one or two lines (see sample warning below). The easiest way
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 " not to mess up file name detection and not to jump to all positions is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 " to add something like
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 " -linelen 500 +boundscompacterrormessages
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 " to your .splintrc and 'set cmdheight=4' or more.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 " TODO: reliable way to distinguish file names and constraints.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 " sample warning (generic):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 "foo.c:1006:12: Clauses exit with var referencing local storage in one
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 " case, fresh storage in other case
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 " foo.c:1003:2: Fresh storage var allocated
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 " sample warning (bounds checking):
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 "bounds.c: (in function updateEnv)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 "bounds.c:10:5: Possible out-of-bounds store:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 " strcpy(str, tmp)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 " Unable to resolve constraint:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 " requires maxSet(str @ bounds.c:10:13) >= maxRead(getenv("MYENV") @
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 " bounds.c:6:9)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 " needed to satisfy precondition:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 " requires maxSet(str @ bounds.c:10:13) >= maxRead(tmp @ bounds.c:10:18)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 " derived from strcpy precondition: requires maxSet(<parameter 1>) >=
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 " maxRead(<parameter 2>)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 " A memory write may write to an address beyond the allocated buffer. (Use
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 " -boundswrite to inhibit warning)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 CompilerSet errorformat=%OLCLint*m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 \%OSplint*m,
255
c8742c8da9ab updated for version 7.0070
vimboss
parents: 25
diff changeset
56 \%f(%l\\,%c):\ %m,
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 \%*[\ ]%f:%l:%c:\ %m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 \%*[\ ]%f:%l:\ %m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 \%*[^\"]\"%f\"%*\\D%l:\ %m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 \\"%f\"%*\\D%l:\ %m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 \%A%f:%l:%c:\ %m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 \%A%f:%l:%m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 \\"%f\"\\,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 \\ line\ %l%*\\D%c%*[^\ ]\ %m,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 \%DMaking\ %*\\a\ in\ %f,
25
8cde1a064c7c updated for version 7.0017
vimboss
parents: 7
diff changeset
68 \%C\ %#%m
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 let &cpo = s:cpo_save
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 unlet s:cpo_save