summaryrefslogtreecommitdiff
path: root/mnv/runtime/compiler/splint.mnv
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 12:41:27 +0300
commit4f2d36194b4f299aa7509d815c07121039ea833b (patch)
treef3ded014bad3a4c76ff6a22b8726ebaab68c3d13 /mnv/runtime/compiler/splint.mnv
parent5b578e70c314723a3cde5c9bfc2be0bf1dadc93b (diff)
downloadProject-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.tar.gz
Project-Tick-4f2d36194b4f299aa7509d815c07121039ea833b.zip
NOISSUE change uvim folder name to mnv
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'mnv/runtime/compiler/splint.mnv')
-rw-r--r--mnv/runtime/compiler/splint.mnv68
1 files changed, 68 insertions, 0 deletions
diff --git a/mnv/runtime/compiler/splint.mnv b/mnv/runtime/compiler/splint.mnv
new file mode 100644
index 0000000000..f616400a81
--- /dev/null
+++ b/mnv/runtime/compiler/splint.mnv
@@ -0,0 +1,68 @@
+" MNV compiler file
+" Compiler: splint/lclint (C source code checker)
+" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+" Splint Home: http://www.splint.org/
+" Last Change: 2019 Jul 23
+" 2024 Apr 03 by The MNV Project (removed :CompilerSet definition)
+" $Revision: 1.3 $
+
+if exists("current_compiler")
+ finish
+endif
+let current_compiler = "splint"
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+" adapt this if you want to check more than one file at a time.
+" put command line options in .splintrc or ~/.splintrc
+CompilerSet makeprg=splint\ %:S
+
+" Note: when using the new array bounds checking flags: Each warning
+" usually has several lines and several references to source code mostly
+" within one or two lines (see sample warning below). The easiest way
+" not to mess up file name detection and not to jump to all positions is
+" to add something like
+" -linelen 500 +boundscompacterrormessages
+" to your .splintrc and 'set cmdheight=4' or more.
+" TODO: reliable way to distinguish file names and constraints.
+"
+" sample warning (generic):
+"
+"foo.c:1006:12: Clauses exit with var referencing local storage in one
+" case, fresh storage in other case
+" foo.c:1003:2: Fresh storage var allocated
+"
+" sample warning (bounds checking):
+"
+"bounds.c: (in function updateEnv)
+"bounds.c:10:5: Possible out-of-bounds store:
+" strcpy(str, tmp)
+" Unable to resolve constraint:
+" requires maxSet(str @ bounds.c:10:13) >= maxRead(getenv("MYENV") @
+" bounds.c:6:9)
+" needed to satisfy precondition:
+" requires maxSet(str @ bounds.c:10:13) >= maxRead(tmp @ bounds.c:10:18)
+" derived from strcpy precondition: requires maxSet(<parameter 1>) >=
+" maxRead(<parameter 2>)
+" A memory write may write to an address beyond the allocated buffer. (Use
+" -boundswrite to inhibit warning)
+
+CompilerSet errorformat=%OLCLint*m,
+ \%OSplint*m,
+ \%f(%l\\,%c):\ %m,
+ \%*[\ ]%f:%l:%c:\ %m,
+ \%*[\ ]%f:%l:\ %m,
+ \%*[^\"]\"%f\"%*\\D%l:\ %m,
+ \\"%f\"%*\\D%l:\ %m,
+ \%A%f:%l:%c:\ %m,
+ \%A%f:%l:%m,
+ \\"%f\"\\,
+ \\ line\ %l%*\\D%c%*[^\ ]\ %m,
+ \%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
+ \%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
+ \%DMaking\ %*\\a\ in\ %f,
+ \%C\ %#%m
+
+let &cpo = s:cpo_save
+unlet s:cpo_save