drl7x [Fri, 7 Mar 2003 07:16:11 +0000 (07:16 +0000)]
Fixed bug #697722 Assert error / global
I had to fish around a lot but Splint now handles thing cleanly if a global is used in a /*@requires isnull ..@*/ or similar clause.
Basically, we just ignore the variable as was the old behavior. The bug was that llassert were failing. I think things likely became broken after the code implementing the overloading of the requires keyword was added.
drl7x [Thu, 6 Mar 2003 04:29:34 +0000 (04:29 +0000)]
In response to [ 689702 ] Missing C99 __func__ predefined identifier
Added the __func__ identifier from C99
Not this won't follow the same semantics as
__func__ in C99
FWIW C99 says that __func__ should have the value of the
lexically enclosing function
e.g. in the function foo __func__ == "foo"
in bar __func__ == "bar"
We're just having the value be constant here and picking
an arbitary value.
evans1629 [Wed, 18 Dec 2002 01:05:57 +0000 (01:05 +0000)]
Improved tracking of state change locations. Added +showdeephistory
flag to display all available information about state changes. Added
+locindentspaces to control indentation of sub-messages (to allow emacs
error jumping).
Separated cscanner.l code into cscannerHelp.c to distinguish it from
flex-generated code.
evans1629 [Fri, 13 Dec 2002 00:10:13 +0000 (00:10 +0000)]
Fixed parsing problem with multiple inclusions of alt typedefs.
<b>Multiple passes on type definitions with /*@alt@*/</b>
<blockquote>
Splint will produce a parse error if a type definition like,
<pre>
typedef long /*@alt int@*/ newtype;
</pre>
is processed twice (for example if it is in a header file included
multiple times).
<p>
Reorted by Simon Hosie, fixed in CVS (2002-12-12).
</blockquote>
evans1629 [Wed, 4 Dec 2002 01:40:37 +0000 (01:40 +0000)]
Committing my cosmetic code changes and fix of the token problem in
function clauses. There are some fatal bug errors with the constraint
checking but I think that was already there in the CVS.
drl7x [Mon, 14 Oct 2002 21:57:43 +0000 (21:57 +0000)]
\a
Put back previously #if 0 'ed code.
I had to put this code back the case that needs it is when splint is given an absolute path name of a file outside of the current directory and the subdirectories below the current directory. e.g. cd /home/; splint /tmp/prog.c
NOTE: I added this code back previously in another branch. I don't know if my changes were lost in CVS of if another developer removed them intentionally.
<b>getgrgid, getgrnam, getpwnam</b>
<blockquote>
These functions from grp.h in the Posix and Unix libraries should be
declared to return /*@observer@*/ references. Reported by Enrico
Scholz. Fixed in CVS (2002-07-08), will be in 3.0.1.7.
</blockquote>
<b>sys/resource.h</b>
<blockquote>
The sys/resource.h segment of the Unix library was not updated to
SUSv3. The type of rlim_t, struct rlimit and struct rusage have been
updated. Reported by Enrico Scholz. Fixed in CVS (2002-07-08), will be
in 3.0.1.7.
</blockquote>
<b>Standard library missing snprintf</b>
<blockquote>
snprintf is in the unix library, but not the standard library. It was
added to ISO C99, so should be in the standard library. Reported by
Olivier L'Heureux. Fixed in CVS (2002-07-08), will be in 3.0.1.7.
</blockquote>
- parsing support for restrict pointers
- showloadloc to control printing line number for load files
Apparently splint does not correctly handle the case in which a #defined constant is used in the function constraint unless it's been specified with the constant annotation.
Modified splint to halt and print a message suggesting that the constant annotation be used.
herbert [Fri, 12 Apr 2002 09:29:35 +0000 (09:29 +0000)]
os2/makeos2.cmd: also make in ../lib with `-o' option.
src/Makefile.os2: small bugfix.
src/fileTable.c: added #include and macros for S_IRUSR and friends
(OS/2 and IBMC only).
test/Makefile-test.os2: obsolete, replaced by test/Makefile.os2.
evans1629 [Wed, 13 Mar 2002 22:30:18 +0000 (22:30 +0000)]
o Make lltok an abstract type, a pointer to structure instead of a plain
struct. There are still some memory leaks in the parser --- all
tokens should be deallocated.
o Added messagestream, warningstream and errorstream control flags so
each type of message can be directed to a different stream:
messagestreamstdout
messagestreamstderr
messagestream <file>