Bug: An array declaration like, x[(user type) N] is not parsed correctly is some contexts.
Update: Coming in Version 2.1a
Bug: If main is declared using without parameter types, a type error results.
Update: Coming in Version 2.1a
Bug: The standard libraries declare ctime, gmtime and localtime with a parameter of type time_t. It should be a pointer to time_t.
Update: Coming in Version 2.1a
Bug: The standard libraries declare perror with no /*@null@*/ annotation on its parameter. It should have a null annotation.
Update: Coming in Version 2.1a
Bug: offsetof is not supported by LCLint 2.0.
Update: Coming in Version 2.1a
Bug: Numeric literals with - may not typecheck correctly (they are typed too strictly).short a = -2;Update: Coming in Version 2.1a
Bug: Enumerator names may not be used inside the enum declaration, e.g.:enum enum_t { A, B = A } ;Update: Coming in Version 2.1a
Bug: Enumerator names declared withing a structure scope are not visible, e.g.:struct struct_t { enum enum_t { A, B } type; };Update: Coming in Version 2.1a
Bug: A function pointer type like,void (*f[10])(void);is not interpreted correctly.
Update: Coming in Version 2.1a
Bug: A macro definition like,# define NAME\fails. (No space between the macro name and continuation character.)
Update: Coming in Version 2.1a
Bug: Calling exit() produces a run-time bug report (when the (non-existent) argument to exit is checked.
Update: Coming in Version 2.1a
Bug: The clock library function is declared with /*@globals internalState@*/, not /*@modifies internalState@*/. This causes loops that depend on clock() to be incorrectly reported as infinite.
Fix: Change declaration in standard,h, strict.h, unix.h to /*@modifies internalState@*/.
Update: Coming in Version 2.1a
Bug: Local arrays declared with static are incorrectly marked as stack-allocated storage.
Fix: Static arrays should not be stack-alloacted.
Update: Coming in Version 2.1a
Bug: A parameter cannot be annotated with both sef and returned.
Update: Coming in Version 2.1a
Bug: There is no way to control if ANSI header files are skipped or included normally.
Fix: Flag skipansiheaders, change rules for skipping include files not listed in systemdirs. Update: Coming in Version 2.1a
Bug: Function parameters of array type were incorrectly marked as stack-allocated storage.
Fix: Array parameters should not be stack-alloacted.
Update: Coming in Version 2.1a
Bug: The type of %x is incorrect. Was int, should be unsigned int.
Fix: Correct type in exprNode.c.
Update: Source and alpha packages, 21 March 1996.
Change: Added annotations to declarations in standard library:extern /*@observer@*/ /*@null@*/ char *setlocale (int category, /*@null@*/ char *locale) extern int setjmp (/*@out@*/ jmp_buf env) /*@modifies env;@*/ ;Change: Added to unix.h:Update: Source and common packages, 20 March 1996
- A bunch of type definitions like uchar_t, ino_t, etc.
- A declaraction for struct stat that includes only those fields that are consistent on three Unix platforms (Digital Unix, Ultrix, and Solaris).
- Declarations of stat, fstat and lstat.
Bug: Because of the #line marker generated in lclint's pre-preprocessing phase, multiple line preprocessor directives were not handler correctly.
Fix: Don't produce the #line marker for directives that include the continuation character.
Update: Source package, alpha, decmips, solaris, linux-elf, 20 March 1996
Bug: The code generated for a forward struct in an .lh is missing the field declarations.
Fix: Fix lh.c to generate code for exposed type nodes with no declarators.
Update: Source package, alpha, decmips, solaris, linux-elf, 20 March 1996
Bug: The fresh operator in LCL is only defined for mutable abstract types. Should probably also be defined for exposed pointer types?
Bug: The unused annotation is not recognized in LCL specifications.
Fix: Add unused to tokens in lclscanline.c and llgrammar.y.
Update: Source package, 20 March 1996; alpha, decmips, solaris, linux-elf, 20 March 1996
Bug: The code does not call fseek (..., SEEK_CUR) after reading and writing to the stream before calling ftell. Apparently, the call to fseek is necessary to ensure the correct result from ftell. (So far, this problem is only manifest on SunOS4 systems.)
Thanks: Thanks to Jutta Degener <[email protected]> for providing this bug fix.
Update: Source package (change in macrocache.c), 11 March 1996; alpha, decmips, solaris, linux-elf, 20 March 1996
Change: Instead of generating the date that is printed in the herald using the Unix date command, the date is read from the DATE file in the package. This means the date is that date the package was created, not when the code was compiled. This was mainly done because the interface to the date command is not standardized across UNIX platforms.
Update: Source package, 10 March 1996
Change: Removed help -flags full test since the results may not match exactly if the machine has a different temporary directory. Added -showcol flag to db tests since different preprocessors may produce slightly different column numbers for some of the messages.
Update: Source and common packages, 10 March 1996
Change: Added ssize_t to the standard libraries. It is supported by POSIX, but not part of the ANSI Standard Library. Perhaps, what is needed is a posix standard library.
Update: Source and common packages, 10 March 1996
Bug: A parse error is reported if /*@notreached@*/ is not followed by a statement.
Example:void f (void) { /*@notreached@*/ }Fix: Fixed grammar.
Update: Source and alpha packages, 8 March 1996; decmips, solaris, 10 March 1996; linux-elf, 20 March 1996
Bug: An error is reported for a break inside a do ... while loop.
Example:do { break; } while (FALSE);Fix: Fixed so that while clause is entered after the do.
Update:Source and alpha packages, 7 March 1996; decmips, solaris, 10 March 1996; linux-elf, 20 March 1996
Bug: The ignoresigns flag does not behave as documented for literal values.
Example: Running lclint +ignoresigns on,unsigned int x = -2;should not produce an error message.
Fix: Fixed alternate types of numerics in cscanner.l, and type checking in cprim.c.
Update: Source and alpha packages, 7 March 1996; decmips, solaris, 10 March 1996; linux-elf, 20 March 1996
Bug: Type definitions inside function bodies produce and internal assertion failure.
Example:void f (void) { typedef int tint; }Fix: Removed assertion for type and tag declarations in usymtab_addEntryQuiet in usymtab.c.
Update:Source and alpha packages, 7 March 1996; decmips, solaris, 10 March 1996; linux-elf, 20 March 1996
Bug: Continuation markers inside comments are lost by the pre-preprocessor.
Example:/* this is a \ continued \ comment */ \Fix: Changed pcpp.c to not remove \'s in comments. Report errors if a \ in a comment is followed by */ or a \ not in a comment is followed by a non-space character.
Update:Source and alpha packages, 7 March 1996; decmips, solaris, 10 March 1996; linux-elf, 20 March 1996