From: evans1629 Date: Fri, 19 Oct 2001 22:42:33 +0000 (+0000) Subject: Added mtgrammar.c.der X-Git-Tag: Alpha-3_0_0_19~14 X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/commitdiff_plain/8e37b772b38d8082ae5ccd4e6d74a8fe7271b705 Added mtgrammar.c.der --- diff --git a/config.h b/config.h index 01064a6..4db4252 100644 --- a/config.h +++ b/config.h @@ -10,13 +10,13 @@ #define DEFAULT_LCLIMPORTDIR "/usr/local/share/lclint/imports" /* gcc's private include directory */ -#define GCC_INCLUDE_DIR "/usr/cs/lib/gcc-lib/i686-pc-linux-gnu/3.0/include +#define GCC_INCLUDE_DIR "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include" /* the system's main include directory */ #define GCC_INCLUDE_DIR2 "/usr/local/include" /* String describing who compiled this binary and how */ -#define LCL_COMPILE "Compiled using gcc -g -O2 on Linux matthews.cs.Virginia.EDU 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by drl7x" +#define LCL_COMPILE "Compiled using gcc -g -O2 on Linux paisley 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by evans" /* LCLint's version number */ #define LCL_PARSE_VERSION "LCLint 3.0.0.19" diff --git a/imports/Makefile b/imports/Makefile index 67d8878..d422376 100644 --- a/imports/Makefile +++ b/imports/Makefile @@ -38,10 +38,10 @@ pkglibdir = $(libdir)/lclint pkgincludedir = $(includedir)/lclint top_builddir = .. -ACLOCAL = ${SHELL} /tmp/LCLintDev/config/missing --run aclocal -AUTOCONF = ${SHELL} /tmp/LCLintDev/config/missing --run autoconf -AUTOMAKE = ${SHELL} /tmp/LCLintDev/config/missing --run automake -AUTOHEADER = ${SHELL} /tmp/LCLintDev/config/missing --run autoheader +ACLOCAL = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run aclocal +AUTOCONF = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run autoconf +AUTOMAKE = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run automake +AUTOHEADER = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run autoheader INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} @@ -57,7 +57,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = host_triplet = i686-pc-linux-gnu -AMTAR = ${SHELL} /tmp/LCLintDev/config/missing --run tar +AMTAR = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run tar AWK = gawk BISON = bison CAT = cat @@ -80,7 +80,7 @@ RM = rm VERSION = 3.0.0.19 am__include = include am__quote = -install_sh = /tmp/LCLintDev/config/install-sh +install_sh = /net/af10/evans/LCLintDev/config/install-sh AUTOMAKE_OPTIONS = 1.5 foreign diff --git a/src/Makefile b/src/Makefile index 5f0b008..568e70f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -38,10 +38,10 @@ pkglibdir = $(libdir)/lclint pkgincludedir = $(includedir)/lclint top_builddir = .. -ACLOCAL = ${SHELL} /tmp/LCLintDev/config/missing --run aclocal -AUTOCONF = ${SHELL} /tmp/LCLintDev/config/missing --run autoconf -AUTOMAKE = ${SHELL} /tmp/LCLintDev/config/missing --run automake -AUTOHEADER = ${SHELL} /tmp/LCLintDev/config/missing --run autoheader +ACLOCAL = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run aclocal +AUTOCONF = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run autoconf +AUTOMAKE = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run automake +AUTOHEADER = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run autoheader INSTALL = /usr/bin/install -c INSTALL_PROGRAM = ${INSTALL} @@ -57,7 +57,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = host_triplet = i686-pc-linux-gnu -AMTAR = ${SHELL} /tmp/LCLintDev/config/missing --run tar +AMTAR = ${SHELL} /net/af10/evans/LCLintDev/config/missing --run tar AWK = gawk BISON = bison CAT = cat @@ -80,7 +80,7 @@ RM = rm VERSION = 3.0.0.19 am__include = include am__quote = -install_sh = /tmp/LCLintDev/config/install-sh +install_sh = /net/af10/evans/LCLintDev/config/install-sh AUTOMAKE_OPTIONS = 1.5 foreign diff --git a/src/mtgrammar.c.der b/src/mtgrammar.c.der new file mode 100644 index 0000000..ce2f8c7 --- /dev/null +++ b/src/mtgrammar.c.der @@ -0,0 +1,1600 @@ +/* +** Inserted at beginning of c files generated by bison +** REMEMBER: Change bison.reset too. +*/ + +/*@-allmacros@*/ +/*@+boolint@*/ +/*@+charint@*/ +/*@-macroparams@*/ +/*@-macroundef@*/ +/*@-unreachable@*/ +/*@-macrospec@*/ +/*@-varuse@*/ +/*@+ignorequals@*/ +/*@-macrostmt@*/ +/*@-noeffect@*/ +/*@-shadow@*/ +/*@-exitarg@*/ +/*@-macroredef@*/ +/*@-uniondef@*/ +/*@-compdef@*/ +/*@-matchfields@*/ +/*@-exportlocal@*/ +/*@-evalorderuncon@*/ +/*@-exportheader@*/ +/*@-typeuse@*/ +/*@-redecl@*/ +/*@-redef@*/ +/*@-noparams@*/ +/*@-ansireserved@*/ +/*@-fielduse@*/ +/*@-ifblock@*/ +/*@-elseifcomplete@*/ +/*@-whileblock@*/ +/*@-forblock@*/ +/*@-branchstate@*/ +/*@-readonlytrans@*/ +/*@-namechecks@*/ +/*@-usedef@*/ +/*@-systemunrecog@*/ +/*@-dependenttrans@*/ +/*@-unqualifiedtrans@*/ +/*@-nullassign@*/ +/*@-declundef@*/ + +/* < end of bison.head > */ + + +/* A Bison parser, made from mtgrammar.y + by GNU Bison version 1.28 */ + +#define YYBISON 1 /* Identify Bison output. */ + +#define yyparse mtparse +#define yylex mtlex +#define yyerror mterror +#define yylval mtlval +#define yychar mtchar +#define yydebug mtdebug +#define yynerrs mtnerrs +#define MT_BADTOK 257 +#define MT_END 258 +#define MT_STATE 259 +#define MT_GLOBAL 260 +#define MT_CONTEXT 261 +#define MT_ONEOF 262 +#define MT_DEFAULTS 263 +#define MT_DEFAULT 264 +#define MT_REFERENCE 265 +#define MT_PARAMETER 266 +#define MT_RESULT 267 +#define MT_CLAUSE 268 +#define MT_LITERAL 269 +#define MT_NULL 270 +#define MT_ANNOTATIONS 271 +#define MT_ARROW 272 +#define MT_MERGE 273 +#define MT_TRANSFERS 274 +#define MT_PRECONDITIONS 275 +#define MT_POSTCONDITIONS 276 +#define MT_LOSEREFERENCE 277 +#define MT_AS 278 +#define MT_ERROR 279 +#define MT_PLUS 280 +#define MT_STAR 281 +#define MT_BAR 282 +#define MT_LPAREN 283 +#define MT_RPAREN 284 +#define MT_LBRACKET 285 +#define MT_RBRACKET 286 +#define MT_LBRACE 287 +#define MT_RBRACE 288 +#define MT_COMMA 289 +#define MT_CHAR 290 +#define MT_INT 291 +#define MT_FLOAT 292 +#define MT_DOUBLE 293 +#define MT_VOID 294 +#define MT_ANYTYPE 295 +#define MT_INTEGRALTYPE 296 +#define MT_UNSIGNEDINTEGRALTYPE 297 +#define MT_SIGNEDINTEGRALTYPE 298 +#define MT_CONST 299 +#define MT_VOLATILE 300 +#define MT_STRINGLIT 301 +#define MT_IDENT 302 + +#line 25 "mtgrammar.y" + + +# include "bison.reset" +# include "lclintMacros.nf" +# include "llbasic.h" + +# ifndef __LCLINT__ +extern ctype mtscanner_lookupType (mttok p_tok) /*@modifies p_tok@*/ ; +# endif + + /*@i523@*/ /* can't include these here + # include "mtgrammar.h" + # include "mtscanner.h" + */ + +static /*@exits@*/ void mterror (char *); + +/*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */ +static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */); +/*@=noparams@*/ + +# define YYPRINT(file, type, value) yyprint (file, type, value) + +# define YYDEBUG 1 + +# include "bison.head" + + +#line 56 "mtgrammar.y" +typedef union { + mttok tok; + mtDeclarationNode mtdecl; + mtDeclarationPiece mtpiece; + mtDeclarationPieces mtpieces; + mtContextNode mtcontext; + mtValuesNode mtvalues; + mtDefaultsNode mtdefaults; + mtDefaultsDeclList mtdeflist; + mtAnnotationsNode mtannotations; + mtAnnotationList mtannotlist; + mtAnnotationDecl mtannotdecl; + mtMergeNode mtmerge; + mtMergeItem mtmergeitem; + mtMergeClauseList mtmergeclauselist; + mtMergeClause mtmergeclause; + mtTransferClauseList mttransferclauselist; + mtTransferClause mttransferclause; + mtTransferAction mttransferaction; + mtLoseReferenceList mtlosereferencelist; + mtLoseReference mtlosereference; + + /*@only@*/ cstringList cstringlist; + ctype ctyp; + /*@only@*/ qtype qtyp; + int count; +} YYSTYPE; +#ifndef YYDEBUG +#define YYDEBUG 1 +#endif + +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const +#endif +#endif + + + +#define YYFINAL 135 +#define YYFLAG -32768 +#define YYNTBASE 49 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 302 ? yytranslate[x] : 92) + +static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48 +}; + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 1, 3, 7, 12, 15, 16, 19, 21, 23, + 25, 27, 29, 31, 33, 35, 37, 39, 42, 43, + 45, 48, 51, 54, 57, 60, 63, 64, 66, 68, + 71, 73, 77, 80, 81, 83, 85, 87, 90, 92, + 95, 98, 102, 104, 106, 108, 111, 115, 118, 122, + 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, + 144, 147, 149, 153, 156, 159, 163, 168, 171, 173, + 176, 181, 184, 186, 189, 195, 197, 199, 202, 205, + 208, 211, 213, 216, 220, 222, 225, 231, 233, 235, + 237, 240 +}; + +static const short yyrhs[] = { -1, + 50, 0, 5, 51, 4, 0, 6, 5, 51, 4, + 0, 48, 52, 0, 0, 53, 52, 0, 54, 0, + 69, 0, 72, 0, 71, 0, 74, 0, 77, 0, + 83, 0, 81, 0, 82, 0, 84, 0, 7, 56, + 0, 0, 56, 0, 12, 57, 0, 11, 57, 0, + 13, 57, 0, 14, 57, 0, 15, 57, 0, 16, + 57, 0, 0, 58, 0, 59, 0, 59, 62, 0, + 60, 0, 59, 28, 58, 0, 67, 61, 0, 0, + 59, 0, 63, 0, 66, 0, 63, 66, 0, 27, + 0, 27, 65, 0, 27, 63, 0, 27, 65, 63, + 0, 45, 0, 46, 0, 64, 0, 65, 64, 0, + 29, 62, 30, 0, 31, 32, 0, 66, 31, 32, + 0, 36, 0, 37, 0, 38, 0, 39, 0, 40, + 0, 41, 0, 42, 0, 43, 0, 44, 0, 68, + 0, 48, 0, 8, 70, 0, 48, 0, 48, 35, + 70, 0, 10, 91, 0, 9, 73, 0, 56, 18, + 91, 0, 56, 18, 91, 73, 0, 17, 75, 0, + 76, 0, 76, 75, 0, 48, 55, 18, 91, 0, + 19, 78, 0, 79, 0, 79, 78, 0, 80, 26, + 80, 18, 89, 0, 91, 0, 27, 0, 21, 87, + 0, 22, 87, 0, 20, 87, 0, 23, 85, 0, + 86, 0, 86, 85, 0, 91, 18, 90, 0, 88, + 0, 88, 87, 0, 91, 24, 91, 18, 89, 0, + 91, 0, 90, 0, 25, 0, 25, 47, 0, 48, + 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 152, 153, 156, 158, 162, 166, 167, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 183, 187, 188, + 191, 192, 193, 194, 195, 196, 203, 204, 207, 208, + 211, 212, 216, 219, 220, 224, 225, 226, 229, 230, + 231, 232, 235, 236, 239, 240, 243, 244, 245, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 267, + 270, 273, 274, 278, 281, 284, 286, 290, 293, 294, + 298, 302, 305, 306, 309, 313, 314, 317, 320, 323, + 326, 329, 330, 333, 336, 337, 340, 344, 345, 348, + 349, 352 +}; +#endif + + +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","MT_BADTOK", +"MT_END","MT_STATE","MT_GLOBAL","MT_CONTEXT","MT_ONEOF","MT_DEFAULTS","MT_DEFAULT", +"MT_REFERENCE","MT_PARAMETER","MT_RESULT","MT_CLAUSE","MT_LITERAL","MT_NULL", +"MT_ANNOTATIONS","MT_ARROW","MT_MERGE","MT_TRANSFERS","MT_PRECONDITIONS","MT_POSTCONDITIONS", +"MT_LOSEREFERENCE","MT_AS","MT_ERROR","MT_PLUS","MT_STAR","MT_BAR","MT_LPAREN", +"MT_RPAREN","MT_LBRACKET","MT_RBRACKET","MT_LBRACE","MT_RBRACE","MT_COMMA","MT_CHAR", +"MT_INT","MT_FLOAT","MT_DOUBLE","MT_VOID","MT_ANYTYPE","MT_INTEGRALTYPE","MT_UNSIGNEDINTEGRALTYPE", +"MT_SIGNEDINTEGRALTYPE","MT_CONST","MT_VOLATILE","MT_STRINGLIT","MT_IDENT","file", +"mtsDeclaration","declarationNode","declarationPieces","declarationPiece","contextDeclaration", +"optContextSelection","contextSelection","optType","typeExpression","completeType", +"completeTypeAux","optCompleteType","abstractDecl","pointers","innerMods","innerModsList", +"abstractDeclBase","typeSpecifier","typeName","valuesDeclaration","valuesList", +"defaultNode","defaultsDeclaration","defaultDeclarationList","annotationsDeclaration", +"annotationsDeclarationList","annotationDeclaration","mergeDeclaration","mergeClauses", +"mergeClause","mergeItem","preconditionsDeclaration","postconditionsDeclaration", +"transfersDeclaration","loseReferenceDeclaration","lostClauses","lostClause", +"transferClauses","transferClause","transferAction","errorAction","valueChoice", NULL +}; +#endif + +static const short yyr1[] = { 0, + 49, 49, 50, 50, 51, 52, 52, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 54, 55, 55, + 56, 56, 56, 56, 56, 56, 57, 57, 58, 58, + 59, 59, 60, 61, 61, 62, 62, 62, 63, 63, + 63, 63, 64, 64, 65, 65, 66, 66, 66, 67, + 67, 67, 67, 67, 67, 67, 67, 67, 67, 68, + 69, 70, 70, 71, 72, 73, 73, 74, 75, 75, + 76, 77, 78, 78, 79, 80, 80, 81, 82, 83, + 84, 85, 85, 86, 87, 87, 88, 89, 89, 90, + 90, 91 +}; + +static const short yyr2[] = { 0, + 0, 1, 3, 4, 2, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 2, 2, 2, 2, 2, 2, 0, 1, 1, 2, + 1, 3, 2, 0, 1, 1, 1, 2, 1, 2, + 2, 3, 1, 1, 1, 2, 3, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 1, 3, 2, 2, 3, 4, 2, 1, 2, + 4, 2, 1, 2, 5, 1, 1, 2, 2, 2, + 2, 1, 2, 3, 1, 2, 5, 1, 1, 1, + 2, 1 +}; + +static const short yydefact[] = { 1, + 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 6, 8, 9, + 11, 10, 12, 13, 15, 16, 14, 17, 3, 0, + 27, 27, 27, 27, 27, 27, 18, 62, 61, 0, + 65, 92, 64, 19, 68, 69, 77, 72, 73, 0, + 76, 80, 85, 0, 78, 79, 81, 82, 0, 7, + 4, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 60, 22, 28, 29, 31, 34, 59, 21, 23, 24, + 25, 26, 0, 0, 0, 20, 70, 74, 0, 86, + 0, 83, 0, 39, 0, 0, 0, 30, 36, 37, + 35, 33, 63, 66, 0, 0, 0, 90, 84, 43, + 44, 41, 45, 40, 32, 0, 48, 38, 0, 67, + 71, 0, 0, 91, 42, 46, 47, 49, 75, 89, + 88, 87, 0, 0, 0 +}; + +static const short yydefgoto[] = { 133, + 3, 5, 17, 18, 19, 85, 40, 72, 73, 74, + 75, 102, 98, 99, 113, 114, 100, 76, 77, 20, + 39, 21, 22, 41, 23, 45, 46, 24, 48, 49, + 50, 25, 26, 27, 28, 57, 58, 52, 53, 129, + 130, 54 +}; + +static const short yypact[] = { 4, + -37, 35,-32768, 36, 37, -37, 21, 2, 21, 17, + 18, -19, 17, 17, 17, 17,-32768, 36,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 63, + -23, -23, -23, -23, -23, -23,-32768, 33,-32768, 51, +-32768,-32768,-32768, 21,-32768, 18,-32768,-32768, -19, 44, +-32768,-32768, 17, 47,-32768,-32768,-32768, 17, 54,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, -5,-32768, -23,-32768,-32768,-32768,-32768, +-32768,-32768, 2, 17, 55,-32768,-32768,-32768, -19,-32768, + 17,-32768, 50, -15, -23, 20, 45,-32768, 23, 49, + 48,-32768,-32768, 21, 17, 60, 64, 38,-32768,-32768, +-32768,-32768,-32768, -15,-32768, 53,-32768, 49, 52,-32768, +-32768, -20, -20,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 86, 87,-32768 +}; + +static const short yypgoto[] = {-32768, +-32768, 82, 71,-32768,-32768,-32768, -6, 28, -4, 14, +-32768,-32768, -3, -87, -22,-32768, -2,-32768,-32768,-32768, + 11,-32768,-32768, -8,-32768, 56,-32768,-32768, 57,-32768, + 9,-32768,-32768,-32768,-32768, 41,-32768, -11,-32768, -18, + 7, -10 +}; + + +#define YYLAST 113 + + +static const short yytable[] = { 43, + 37, 51, 55, 56, 108, 59, 112, 47, 1, 2, + 4, 94, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 94, 95, 96, 71, 97, 125, 42, 42, 110, + 111, 31, 32, 33, 34, 35, 36, 86, 51, 6, + 29, 90, 7, 8, 9, 10, 94, 59, 96, 38, + 97, 96, 11, 97, 12, 13, 14, 15, 16, 78, + 79, 80, 81, 82, 42, 44, 61, 83, 84, 89, + 91, 93, 105, 104, 108, 95, 117, 122, 51, 119, + 107, 123, 127, 128, 124, 134, 135, 30, 60, 101, + 115, 126, 116, 103, 121, 120, 118, 106, 92, 109, + 0, 87, 0, 0, 132, 88, 0, 0, 0, 0, + 0, 131, 131 +}; + +static const short yycheck[] = { 10, + 7, 12, 14, 15, 25, 16, 94, 27, 5, 6, + 48, 27, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 27, 28, 29, 48, 31, 114, 48, 48, 45, + 46, 11, 12, 13, 14, 15, 16, 44, 49, 5, + 4, 53, 7, 8, 9, 10, 27, 58, 29, 48, + 31, 29, 17, 31, 19, 20, 21, 22, 23, 32, + 33, 34, 35, 36, 48, 48, 4, 35, 18, 26, + 24, 18, 18, 84, 25, 28, 32, 18, 89, 31, + 91, 18, 30, 32, 47, 0, 0, 6, 18, 76, + 95, 114, 96, 83, 105, 104, 99, 89, 58, 93, + -1, 46, -1, -1, 123, 49, -1, -1, -1, -1, + -1, 122, 123 +}; +#define YYPURE 1 + +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/lib/bison.simple" +/* This file comes from bison-1.28. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY -2 +#define YYEOF 0 +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrlab1 +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ +#define YYFAIL goto yyerrlab +#define YYRECOVERING() (!!yyerrstatus) +#define YYBACKUP(token, value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { yychar = (token), yylval = (value); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#endif +#endif + +#line 217 "/usr/lib/bison.simple" + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +#ifdef YYPARSE_PARAM +int yyparse (void *); +#else +int yyparse (void); +#endif +#endif + +int +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +{ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) +#endif + + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; + +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) + { + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + int size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif + } + else + { + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif + } + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ +yyreduce: + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) + { + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 1: +#line 152 "mtgrammar.y" +{; + break;} +case 2: +#line 153 "mtgrammar.y" +{; + break;} +case 3: +#line 157 "mtgrammar.y" +{ mtreader_processDeclaration (yyvsp[-1].mtdecl); ; + break;} +case 4: +#line 159 "mtgrammar.y" +{ mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ; + break;} +case 5: +#line 163 "mtgrammar.y" +{ yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ; + break;} +case 6: +#line 166 "mtgrammar.y" +{ yyval.mtpieces = mtDeclarationPieces_create (); ; + break;} +case 7: +#line 168 "mtgrammar.y" +{ yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ; + break;} +case 8: +#line 171 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ; + break;} +case 9: +#line 172 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ; + break;} +case 10: +#line 173 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ; + break;} +case 11: +#line 174 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ; + break;} +case 12: +#line 175 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ; + break;} +case 13: +#line 176 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ; + break;} +case 14: +#line 177 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ; + break;} +case 15: +#line 178 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ; + break;} +case 16: +#line 179 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ; + break;} +case 17: +#line 180 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ; + break;} +case 18: +#line 183 "mtgrammar.y" +{ yyval.mtcontext = yyvsp[0].mtcontext; ; + break;} +case 19: +#line 187 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createAny (); ; + break;} +case 21: +#line 191 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ; + break;} +case 22: +#line 192 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ; + break;} +case 23: +#line 193 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ; + break;} +case 24: +#line 194 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ; + break;} +case 25: +#line 195 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ; + break;} +case 26: +#line 196 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ; + break;} +case 27: +#line 203 "mtgrammar.y" +{ yyval.ctyp = ctype_unknown; ; + break;} +case 28: +#line 204 "mtgrammar.y" +{ DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ; + break;} +case 30: +#line 208 "mtgrammar.y" +{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; + break;} +case 31: +#line 211 "mtgrammar.y" +{ yyval.qtyp = yyvsp[0].qtyp; ; + break;} +case 32: +#line 213 "mtgrammar.y" +{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; + break;} +case 33: +#line 216 "mtgrammar.y" +{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; + break;} +case 34: +#line 219 "mtgrammar.y" +{ yyval.qtyp = qtype_unknown (); ; + break;} +case 35: +#line 220 "mtgrammar.y" +{ yyval.qtyp = yyvsp[0].qtyp; ; + break;} +case 36: +#line 224 "mtgrammar.y" +{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; + break;} +case 38: +#line 226 "mtgrammar.y" +{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; + break;} +case 39: +#line 229 "mtgrammar.y" +{ yyval.count = 1; ; + break;} +case 40: +#line 230 "mtgrammar.y" +{ yyval.count = 1; ; + break;} +case 41: +#line 231 "mtgrammar.y" +{ yyval.count = 1 + yyvsp[0].count; ; + break;} +case 42: +#line 232 "mtgrammar.y" +{ yyval.count = 1 + yyvsp[0].count; ; + break;} +case 43: +#line 235 "mtgrammar.y" +{ /* ignored for now */; ; + break;} +case 44: +#line 236 "mtgrammar.y" +{ ; ; + break;} +case 45: +#line 239 "mtgrammar.y" +{ ; ; + break;} +case 46: +#line 240 "mtgrammar.y" +{ ; ; + break;} +case 47: +#line 243 "mtgrammar.y" +{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; + break;} +case 48: +#line 244 "mtgrammar.y" +{ yyval.ctyp = ctype_makeArray (ctype_unknown); ; + break;} +case 49: +#line 245 "mtgrammar.y" +{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; + break;} +case 50: +#line 252 "mtgrammar.y" +{ yyval.ctyp = ctype_char; ; + break;} +case 51: +#line 253 "mtgrammar.y" +{ yyval.ctyp = ctype_int; ; + break;} +case 52: +#line 254 "mtgrammar.y" +{ yyval.ctyp = ctype_float; ; + break;} +case 53: +#line 255 "mtgrammar.y" +{ yyval.ctyp = ctype_double; ; + break;} +case 54: +#line 256 "mtgrammar.y" +{ yyval.ctyp = ctype_void; ; + break;} +case 55: +#line 257 "mtgrammar.y" +{ yyval.ctyp = ctype_unknown; ; + break;} +case 56: +#line 258 "mtgrammar.y" +{ yyval.ctyp = ctype_anyintegral; ; + break;} +case 57: +#line 259 "mtgrammar.y" +{ yyval.ctyp = ctype_unsignedintegral; ; + break;} +case 58: +#line 260 "mtgrammar.y" +{ yyval.ctyp = ctype_signedintegral; ; + break;} +case 60: +#line 267 "mtgrammar.y" +{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ; + break;} +case 61: +#line 270 "mtgrammar.y" +{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ; + break;} +case 62: +#line 273 "mtgrammar.y" +{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ; + break;} +case 63: +#line 275 "mtgrammar.y" +{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ; + break;} +case 64: +#line 278 "mtgrammar.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 65: +#line 281 "mtgrammar.y" +{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ; + break;} +case 66: +#line 285 "mtgrammar.y" +{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ; + break;} +case 67: +#line 287 "mtgrammar.y" +{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ; + break;} +case 68: +#line 290 "mtgrammar.y" +{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ; + break;} +case 69: +#line 293 "mtgrammar.y" +{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ; + break;} +case 70: +#line 295 "mtgrammar.y" +{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ; + break;} +case 71: +#line 299 "mtgrammar.y" +{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ; + break;} +case 72: +#line 302 "mtgrammar.y" +{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ; + break;} +case 73: +#line 305 "mtgrammar.y" +{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ; + break;} +case 74: +#line 306 "mtgrammar.y" +{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ; + break;} +case 75: +#line 310 "mtgrammar.y" +{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ; + break;} +case 76: +#line 313 "mtgrammar.y" +{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ; + break;} +case 77: +#line 314 "mtgrammar.y" +{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ; + break;} +case 78: +#line 317 "mtgrammar.y" +{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ; + break;} +case 79: +#line 320 "mtgrammar.y" +{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ; + break;} +case 80: +#line 323 "mtgrammar.y" +{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ; + break;} +case 81: +#line 326 "mtgrammar.y" +{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ; + break;} +case 82: +#line 329 "mtgrammar.y" +{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ; + break;} +case 83: +#line 330 "mtgrammar.y" +{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ; + break;} +case 84: +#line 333 "mtgrammar.y" +{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ; + break;} +case 85: +#line 336 "mtgrammar.y" +{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ; + break;} +case 86: +#line 337 "mtgrammar.y" +{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ; + break;} +case 87: +#line 341 "mtgrammar.y" +{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ; + break;} +case 88: +#line 344 "mtgrammar.y" +{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ; + break;} +case 89: +#line 345 "mtgrammar.y" +{ yyval.mttransferaction = yyvsp[0].mttransferaction; ; + break;} +case 90: +#line 348 "mtgrammar.y" +{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ; + break;} +case 91: +#line 349 "mtgrammar.y" +{ yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ; + break;} +} + /* the action file gets copied in in place of this dollarsign */ +#line 543 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 1; +} +#line 354 "mtgrammar.y" + + +# include "bison.reset" + +extern char *yytext; + +static void mterror (char *s) +{ + + if (s != NULL) + { + llparseerror + (message ("Parse error in meta-state file: %s", cstring_fromChars (s))); + } + else + { + llparseerror + (message ("Parse error in meta-state file")); + } + +} + +static void yyprint (FILE *file, int type, YYSTYPE value) +{ + cstring tname = mttok_unparse (value.tok); + fprintf (file, " (%s)", cstring_toCharsSafe (tname)); + cstring_free (tname); +} + + + + +/* +** Resets all flags in bison.head +*/ + + +/*@=allmacros@*/ +/*@=boolint@*/ +/*@=charint@*/ +/*@=macroparams@*/ +/*@=macroundef@*/ +/*@=unreachable@*/ +/*@=macrospec@*/ +/*@=varuse@*/ +/*@=ignorequals@*/ +/*@=macrostmt@*/ +/*@=noeffect@*/ +/*@=shadow@*/ +/*@=exitarg@*/ +/*@=macroredef@*/ +/*@=uniondef@*/ +/*@=compdef@*/ +/*@=matchfields@*/ +/*@=exportlocal@*/ +/*@=evalorderuncon@*/ +/*@=exportheader@*/ +/*@=typeuse@*/ +/*@=redecl@*/ +/*@=redef@*/ +/*@=noparams@*/ +/*@=ansireserved@*/ +/*@=fielduse@*/ +/*@=ifblock@*/ +/*@=elseifcomplete@*/ +/*@=whileblock@*/ +/*@=forblock@*/ +/*@=branchstate@*/ +/*@=readonlytrans@*/ +/*@=namechecks@*/ +/*@=usedef@*/ +/*@=systemunrecog@*/ +/*@=dependenttrans@*/ +/*@=unqualifiedtrans@*/ +/*@=declundef@*/ diff --git a/test/abstptr.out b/test/abstptr.out index d6c6a15..1b1d5a3 100644 --- a/test/abstptr.out +++ b/test/abstptr.out @@ -1,7 +1,25 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +abstptr.c: (in function main) +abstptr.c:13:3: Assignment of abst * to void *: vp = ap +abstptr.c:14:3: Assignment of abst * to int *: ip = ap2 +abstptr.c:15:3: Assignment of int * to abst *: ap = ip +abstptr.c:16:17: Cast from underlying abstract type abst *: (void *)ap +abstptr.c:17:8: Dereference of null pointer ap: *ap + abstptr.c:15:8: Storage ap becomes null +abstptr.c:19:16: Cast from underlying abstract type abst *: (void *)&a +abstptr.c:20:16: Cast to underlying abstract type abst *: (abst *)&b +abstptr.c:21:3: Assignment of int * to abst *: ap = &b +abstptr.c:22:3: Assignment of int to abst: *ap = b + +Finished LCLint checking --- 9 code errors found, as expected + +abstptr.c: (in function main) +abstptr.c:14:3: Assignment of abst * to int *: ip = ap2 +abstptr.c:15:3: Assignment of int * to abst *: ap = ip +abstptr.c:17:8: Dereference of null pointer ap: *ap + abstptr.c:15:8: Storage ap becomes null +abstptr.c:20:16: Cast to underlying abstract type abst *: (abst *)&b +abstptr.c:21:3: Assignment of int * to abst *: ap = &b +abstptr.c:22:3: Assignment of int to abst: *ap = b + +Finished LCLint checking --- 6 code errors found, as expected diff --git a/test/abstract.out b/test/abstract.out index d6c6a15..815b38b 100644 --- a/test/abstract.out +++ b/test/abstract.out @@ -1,7 +1,22 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +commentcmd.c:1:13: Mutable abstract type abst1 declared without pointer + indirection: int (violates assignment semantics) +commentcmd.c:1:20: Mutable abstract type abst2 declared without pointer + indirection: int (violates assignment semantics) +commentcmd.c:2:13: Mutable abstract type abst3 declared without pointer + indirection: int (violates assignment semantics) +commentcmd.c: (in function main) +commentcmd.c:11:22: Cast to abstract type abst2: (abst2)i +commentcmd.c:16:22: Cast to abstract type abst1: (abst1)i +commentcmd.c:17:22: Cast to abstract type abst2: (abst2)i +commentcmd.c:18:22: Cast to abstract type abst3: (abst3)i +commentcmd.c:22:22: Cast to abstract type abst1: (abst1)i +commentcmd.c:24:22: Cast to abstract type abst3: (abst3)i +commentcmd.c:34:22: Cast to abstract type abst1: (abst1)i +commentcmd.c:40:22: Cast to abstract type abst1: (abst1)i +commentcmd.c:41:22: Cast to abstract type abst2: (abst2)i +commentcmd.c:46:22: Cast to abstract type abst1: (abst1)i +commentcmd.c:47:22: Cast to abstract type abst2: (abst2)i +commentcmd.c:48:22: Cast to abstract type abst3: (abst3)i + +Finished LCLint checking --- 15 code errors found, as expected diff --git a/test/alttypes.out b/test/alttypes.out index 9b77208..b1c269f 100644 --- a/test/alttypes.out +++ b/test/alttypes.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. alttypes.c:19:20: Function f2 inconsistently redeclared to return alternate types int | bool (types match, but alternates are not identical, so checking may not be correct) diff --git a/test/ansireserved.out b/test/ansireserved.out index 589856f..eb377ae 100644 --- a/test/ansireserved.out +++ b/test/ansireserved.out @@ -49,13 +49,17 @@ ansireserved.c:16:20: Name wctomb is reserved for the standard library Finished LCLint checking --- 11 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. ansireserved.c:9: Name EVANS is reserved for future ANSI library extensions. Macros beginning with E and a digit or uppercase letter may be added to . (See ANSI, Section 4.13.1) ansireserved.c:1:5: Name decimal_point is reserved for the standard library +ansireserved.c:2:5: Function srand inconsistently declared as variable: int + load file ansi.lcd:897:1: Specification of srand: + [function (unsigned int) returns void] ansireserved.c:2:5: Name srand is reserved for the standard library +ansireserved.c:3:5: Function labs inconsistently declared as variable: int + load file ansi.lcd:919:1: Specification of labs: + [function (long int) returns long int] ansireserved.c:3:5: Name labs is reserved for the standard library ansireserved.c:4:5: Name _x is in the implementation name space (any identifier beginning with underscore) @@ -72,4 +76,9 @@ ansireserved.c: (in function isaFish) ansireserved.c:16:20: Name wctomb is reserved for the standard library ansireserved.c:5:5: Function atan2f declared but not defined -Finished LCLint checking --- 10 code errors found, expected 12 +Finished LCLint checking --- 12 code errors found, as expected + +ansireserved2.c:4:2: Name _s1 is in the implementation name space (any + identifier beginning with underscore) + +Finished LCLint checking --- 1 code error found, as expected diff --git a/test/argorder.out b/test/argorder.out index ebcecf0..7fae137 100644 --- a/test/argorder.out +++ b/test/argorder.out @@ -1,8 +1,7 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. argorder.c: (in function f) -argorder.c:6:3: Unrecognized identifier: printf +argorder.c:8:20: Argument 2 modifies z, used by argument 3 (order of evaluation + of actual parameters is undefined): printf("%d %d", z++, z) argorder.c:10:13: Argument 1 modifies i, used by argument 2 (order of evaluation of actual parameters is undefined): f((i++, j++), (i = 3), j) argorder.c:10:13: Argument 1 modifies j, used by argument 3 (order of @@ -12,9 +11,76 @@ argorder.c:10:25: Argument 2 modifies i, used by argument 1 (order of Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +argorder2.c: (in function g) +argorder2.c:16:12: Argument 1 modifies i, used by argument 2 (order of + evaluation of actual parameters is undefined): f(f(1, 2), f(1, 2)) +argorder2.c:16:21: Argument 2 modifies i, used by argument 1 (order of + evaluation of actual parameters is undefined): f(f(1, 2), f(1, 2)) +argorder2.c:17:12: Argument 1 modifies i, used by argument 2 (order of + evaluation of actual parameters is undefined): f(f(1, 2), h()) +argorder2.c:18:12: Argument 1 modifies i, used by argument 2 (order of + evaluation of actual parameters is undefined): f(f(1, 2), i) +argorder2.c:19:14: Argument 1 modifies i, used by argument 2 (order of + evaluation of actual parameters is undefined): f(i++, i) + +Finished LCLint checking --- 5 code errors found, as expected + +argorder3.c: (in function f) +argorder3.c:7:8: Expression has undefined behavior (value of left operand i is + modified by right operand i++): i = i++ +argorder3.c:8:11: Expression has undefined behavior (left operand uses i, + modified by right operand): a[i] = i++ +argorder3.c:9:12: Expression has undefined behavior (value of right operand + modified by left operand): a[i++] = i +argorder3.c:10:13: Expression has undefined behavior (value of right operand + modified by left operand): i++ * i +argorder3.c:11:12: Expression has undefined behavior (value of left operand i + is modified by right operand i++): i * i++ +argorder3.c:12:14: Expression has undefined behavior (left operand uses i, + modified by right operand): --i * ++i +argorder3.c:12:14: Expression has undefined behavior (left operand modifies i, + used by right operand): --i * ++i +argorder3.c:13:2: Path with no return in function declared to return int + +Finished LCLint checking --- 8 code errors found, as expected + +argorder4.c: (in function h) +argorder4.c:19:21: Expression has undefined behavior (left operand uses glob, + modified by right operand): f() + g() +argorder4.c:25:18: Expression has undefined behavior (left operand uses glob, + modified by right operand): f() + (++glob) +argorder4.c:29:18: Expression has undefined behavior (left operand uses glob, + modified by right operand): g() + h() +argorder4.c:29:18: Expression has undefined behavior (left operand modifies + glob, used by right operand): g() + h() +argorder4.c:35:16: Argument 1 modifies file system state, used by argument 2 + (order of evaluation of actual parameters is undefined): + add((printf("hullo"), 3), (printf("goodbye"), 4)) +argorder4.c:35:16: Argument 1 modifies *stdout, set by argument 2 (order of + evaluation of actual parameters is undefined): + add((printf("hullo"), 3), (printf("goodbye"), 4)) +argorder4.c:35:38: Argument 2 modifies file system state, used by argument 1 + (order of evaluation of actual parameters is undefined): + add((printf("hullo"), 3), (printf("goodbye"), 4)) +argorder4.c:35:38: Argument 2 modifies *stdout, set by argument 1 (order of + evaluation of actual parameters is undefined): + add((printf("hullo"), 3), (printf("goodbye"), 4)) +argorder4.c:35:10: Unreachable code: return (add((pri... + +Finished LCLint checking --- 9 code errors found, as expected + +argorder4.c: (in function h) +argorder4.c:35:10: Unreachable code: return (add((pri... + +Finished LCLint checking --- 1 code error found, as expected + +argorder5.c: (in function f) +argorder5.c:8:9: Variable name used after being released + argorder5.c:8:17: Storage name released +argorder5.c:9:19: Variable name used after being released + argorder5.c:9:12: Storage name released +argorder5.c:10:28: Argument 2 modifies *name, used by argument 1 (order of + evaluation of actual parameters is undefined): + test2(copystring(name), f(name)) + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/args.out b/test/args.out index d6c6a15..38b6a3f 100644 --- a/test/args.out +++ b/test/args.out @@ -1,7 +1,27 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +args.c: (in function sumn) +args.c:14:7: Assignment of char * to int: y = va_arg(args, char *) +args.c:15:19: First argument to va_arg is not a va_list (type void *): yaba +args.c: (in function test) +args.c:22:7: Function sumn called with 0 args, expects at least 1 +args.c:24:12: Function sumn expects arg 1 to be int gets char *: s +args.c:27:7: Function test called with 3 args, expects 2 +args.c:37:5: Function severalargs declared with 3 args, specified with 2 + args.lcl:1: Specification of severalargs +args.c:37:23: Parameter 1, c, of function severalargs has inconsistent type: + declared char, specified int + args.lcl:1: Specification of severalargs +args.c:37:30: Parameter 2, y, of function severalargs has inconsistent type: + declared int, specified char * + args.lcl:1: Specification of severalargs +args.c:43:5: Function severalargs2 declared with 1 arg, specified with 2 + args.lcl:2: Specification of severalargs2 +args.c:48:5: Function voidargs declared with 1 arg, specified with 0 + args.lcl:7: Specification of voidargs +args.c:59:33: Parameter 3, f, of function many1 has inconsistent type: + declared float, specified ... + args.lcl:4: Specification of many1 +args.c:73:5: Function many3 declared with 1 arg, specified with 3 + args.lcl:6: Specification of many3 + +Finished LCLint checking --- 12 code errors found, as expected diff --git a/test/blocks.out b/test/blocks.out index f069138..06db454 100644 --- a/test/blocks.out +++ b/test/blocks.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. blocks.c: (in function f) blocks.c:3:15: Body of if statement is empty blocks.c:4:10: Suspected infinite loop. No value used in loop test (x) is @@ -10,8 +8,6 @@ blocks.c:22:9: Body of else clause of if statement is empty Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. blocks.c: (in function f) blocks.c:3:15: Body of if statement is empty blocks.c:4:10: Suspected infinite loop. No value used in loop test (x) is @@ -24,8 +20,6 @@ blocks.c:22:9: Body of else clause of if statement is empty Finished LCLint checking --- 7 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. blocks.c: (in function f) blocks.c:4:18: Body of while statement is empty blocks.c:4:10: Suspected infinite loop. No value used in loop test (x) is @@ -34,8 +28,6 @@ blocks.c:7:18: Body of while statement is not a block: x++ Finished LCLint checking --- 3 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. blocks.c: (in function f) blocks.c:4:10: Suspected infinite loop. No value used in loop test (x) is modified by test or loop body. @@ -44,8 +36,6 @@ blocks.c:13:23: Body of for statement is not a block: x++ Finished LCLint checking --- 3 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. blocks.c: (in function f) blocks.c:3:15: Body of if statement is empty blocks.c:4:18: Body of while statement is empty @@ -57,8 +47,6 @@ blocks.c:22:9: Body of else clause of if statement is empty Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. blocks.c: (in function f) blocks.c:3:15: Body of if statement is empty blocks.c:4:18: Body of while statement is empty diff --git a/test/break.out b/test/break.out index f9e2686..fa6d9c7 100644 --- a/test/break.out +++ b/test/break.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. break.c: (in function f) break.c:12:4: Break preceded by loopbreak is breaking a switch break.c:17:14: Suspected infinite loop. No value used in loop test (x) is @@ -11,8 +9,6 @@ break.c:34:24: Break preceded by innerbreak is not in a deep loop Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. break.c: (in function f) break.c:12:4: Break preceded by loopbreak is breaking a switch break.c:14:4: Break statement in switch inside loop @@ -25,8 +21,6 @@ break.c:34:24: Break preceded by innerbreak is not in a deep loop Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. break.c: (in function f) break.c:12:4: Break preceded by loopbreak is breaking a switch break.c:14:4: Break statement in switch inside loop diff --git a/test/cases.out b/test/cases.out index 5f9c3dd..d6d0f44 100644 --- a/test/cases.out +++ b/test/cases.out @@ -1,12 +1,42 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. cases.c: (in function f) -cases.c:11:7: Unrecognized identifier: printf cases.c:12:10: Fall through case (no preceding break) cases.c:13:11: Variable i used before definition cases.c:30:10: Fall through case (no preceding break) cases.c:37:13: Fall through case (no preceding break) cases.c:40:2: Path with no return in function declared to return int -Finished LCLint checking --- 6 code errors found, expected 5 +Finished LCLint checking --- 5 code errors found, as expected + +cases2.c: (in function f2) +cases2.c:26:5: Variable x is released in one possible execution, but live in + other possible execution. + cases2.c:23:16: Storage x is released +cases2.c: (in function f3) +cases2.c:37:5: Variable x is released in one possible execution, but live in + other possible execution. + cases2.c:36:16: Storage x is released + +Finished LCLint checking --- 2 code errors found, as expected + +cases2.c: (in function f2) +cases2.c:26:5: Variable x is released in one possible execution, but live in + other possible execution. + cases2.c:23:16: Storage x is released +cases2.c: (in function f3) +cases2.c:37:5: Variable x is released in one possible execution, but live in + other possible execution. + cases2.c:36:16: Storage x is released +cases2.c:1:24: Function g declared but not defined + +Finished LCLint checking --- 3 code errors found, as expected + +cases2.c: (in function f2) +cases2.c:28:12: Variable x used after being released + cases2.c:23:16: Storage x released +cases2.c: (in function f3) +cases2.c:39:12: Variable x used after being released + cases2.c:36:16: Storage x released +cases2.c:1:24: Function g declared but not defined + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/cast.out b/test/cast.out index d6c6a15..a1d0963 100644 --- a/test/cast.out +++ b/test/cast.out @@ -1,7 +1,40 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +cast.c:1:13: Mutable abstract type abst1 declared without pointer indirection: + int (violates assignment semantics) +cast.c:1:20: Mutable abstract type abst2 declared without pointer indirection: + int (violates assignment semantics) +cast.c: (in function main) +cast.c:6:13: Variable b initialized to type int, expects abst2: 3 +cast.c:7:25: Cast to underlying abstract type abst2 *: + (abst2 *)malloc(sizeof(abst2)) +cast.c:11:10: Dereference of possibly null pointer ip: *ip + cast.c:9:14: Storage ip may become null +cast.c:12:10: Dereference of possibly null pointer bp: *bp + cast.c:7:15: Storage bp may become null +cast.c:12:9: Assignment of int to abst2: *bp = 5 +cast.c:13:21: Cast to abstract type abst1: (abst1)ip +cast.c:14:24: Cast to underlying abstract type abst1 *: (abst1 *)ip +cast.c:15:22: Cast to underlying abstract type FILE *: (FILE *)ip +cast.c:16:21: Redundant cast involving abstract type abst1: (abst1)a +cast.c:17:22: Cast from underlying abstract type abst1 *: (int *)ap +cast.c:18:22: Cast from underlying abstract type FILE *: (int *)f +cast.c:19:22: Cast from underlying abstract type abst1: (int *)a +cast.c:20:21: Cast from abstract type abst2: (abst1)b +cast.c:20:21: Cast to abstract type abst1: (abst1)b +cast.c:21:24: Cast to underlying abstract type abst1 *: (abst1 *)bp +cast.c:21:24: Cast from underlying abstract type abst2 *: (abst1 *)bp +cast.c:22:19: Owned storage ap not released before return + cast.c:21:10: Storage ap becomes owned +cast.c:22:19: Last reference ip to owned storage a not released before return + cast.c:20:10: Original reference lost + +Finished LCLint checking --- 20 code errors found, as expected + +cast2.c: (in function f1) +cast2.c:9:10: Implicitly temp storage x returned as implicitly only: x +cast2.c:9:10: Function returns reference to parameter x: x +cast2.c: (in function f2) +cast2.c:15:10: Implicitly dependent storage x returned as implicitly only: + (abst1)x + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/charlit.out b/test/charlit.out index 14c41af..979deac 100644 --- a/test/charlit.out +++ b/test/charlit.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. charlit.c: (in function f) charlit.c:3:11: Variable x initialized to type char, expects int: 'a' A character constant is used as an int. Use +charintliteral to allow @@ -13,8 +11,6 @@ charlit.c:12:14: Variable u initialized to type int, expects unsigned int: -3 Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. charlit.c: (in function f) charlit.c:3:11: Variable x initialized to type char, expects int: 'a' A character constant is used as an int. Use +charintliteral to allow @@ -32,7 +28,4 @@ charlit.c:12:14: Variable u initialized to type int, expects unsigned int: -3 Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found diff --git a/test/clauses.out b/test/clauses.out index 51236e3..0177ee6 100644 --- a/test/clauses.out +++ b/test/clauses.out @@ -1,15 +1,40 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. clauses.c: (in function f) -clauses.c:5:7: Unrecognized identifier: free -clauses.c:22:12: Only storage x not released before return - clauses.c:1:23: Storage x becomes only -clauses.c:22:12: Only storage y not released before return - clauses.c:1:42: Storage y becomes only -clauses.c:22:12: Only storage z not released before return - clauses.c:1:61: Storage z becomes only -clauses.c:22:12: Only storage z2 not released before return - clauses.c:1:80: Storage z2 becomes only - -Finished LCLint checking --- 5 code errors found, expected 4 +clauses.c:6:5: Variable x is released in true branch, but live in continuation. + clauses.c:5:13: Storage x is released +clauses.c:11:5: Variable y is released in while body, but live if loop is not + taken. + clauses.c:10:13: Storage y is released +clauses.c:20:5: Variable z2 is released in false branch, but live in true + branch. + clauses.c:19:13: Storage z2 is released +clauses.c:20:5: Variable z is released in true branch, but live in false + branch. + clauses.c:15:13: Storage z is released + +Finished LCLint checking --- 4 code errors found, as expected + +Finished LCLint checking --- no code errors found + +clauses3.c: (in function h) +clauses3.c:48:5: Storage x->x is released in one path, but live in another. + clauses3.c:46:10: Storage x->x is released +clauses3.c: (in function m) +clauses3.c:61:5: Storage x->x is released in one path, but live in another. + clauses3.c:60:13: Storage x->x is released + +Finished LCLint checking --- 2 code errors found, as expected + +Warning: selecting unix library. Unix library is ad hoc addition to POSIX +library. Recommend use +posixlib to select POSIX library instead. Use +-warnunixlib to suppress this message. +clauses3.c: (in function h) +clauses3.c:48:5: Storage x->x is released in one path, but live in another. + clauses3.c:46:10: Storage x->x is released +clauses3.c: (in function m) +clauses3.c:60:13: Possibly null storage x->x passed as non-null param: + free (x->x) +clauses3.c:61:5: Storage x->x is released in one path, but live in another. + clauses3.c:60:13: Storage x->x is released + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/commentchar.out b/test/commentchar.out index 9a8a9b0..caf9346 100644 --- a/test/commentchar.out +++ b/test/commentchar.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. commentchar.c:14:1: Syntactic commentchar comment is not followed by a whitespace character: 5 commentchar.c:15:1: Cannot restore commentchar @@ -10,8 +8,6 @@ commentchar.c:10:9: Variable x initialized to type char, expects int: 'c' Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. commentchar.c:14:1: Syntactic commentchar comment is not followed by a whitespace character: 5 commentchar.c:15:1: Cannot restore commentchar diff --git a/test/compdestroy.out b/test/compdestroy.out index c1687ce..1583694 100644 --- a/test/compdestroy.out +++ b/test/compdestroy.out @@ -1,12 +1,39 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. +compdestroy.c: (in function sip_free2) +compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released + storage is not released (memory leak): x->ips + +Finished LCLint checking --- 1 code error found, as expected + +compdestroy.c: (in function sip_free) +compdestroy.c:19:9: Only storage x->ips[] (type oip) derived from released + storage may not have been released: x->ips +compdestroy.c: (in function sip_free2) +compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released + storage is not released (memory leak): x->ips + +Finished LCLint checking --- 2 code errors found, as expected + +compdestroy.c: (in function sip_free) +compdestroy.c:16:13: Possibly dead storage x->ips[] passed as out parameter: + x->ips[i] + compdestroy.c:15:13: Storage x->ips[] becomes probably dead +compdestroy.c:19:9: Only storage x->ips[] (type oip) derived from released + storage may not have been released: x->ips +compdestroy.c: (in function sip_free2) +compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released + storage is not released (memory leak): x->ips + +Finished LCLint checking --- 3 code errors found, as expected + compdestroy.c: (in function sip_free) -compdestroy.c:15:7: Unrecognized identifier: free -compdestroy.c:21:2: Only storage x not released before return - compdestroy.c:9:31: Storage x becomes only +compdestroy.c:16:13: Possibly dead storage x->ips[] passed as out parameter: + x->ips[i] + compdestroy.c:15:13: Storage x->ips[] becomes probably dead +compdestroy.c:19:9: Only storage x->ips[] (type oip) derived from released + storage may not have been released: x->ips compdestroy.c: (in function sip_free2) -compdestroy.c:27:2: Only storage x not released before return - compdestroy.c:23:32: Storage x becomes only +compdestroy.c:25:9: Only storage *(x->ips) (type oip) derived from released + storage is not released (memory leak): x->ips -Finished LCLint checking --- 3 code errors found, expected 1 +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/controldepth.out b/test/controldepth.out index 9daa160..c1cae02 100644 --- a/test/controldepth.out +++ b/test/controldepth.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. controldepth.c: (in function f) controldepth.c:8:15: Maximum control nesting depth (2) exceeded Maximum number of control levels exceeded. (-controlnestdepth will suppress @@ -9,8 +7,6 @@ controldepth.c:15:17: Maximum control nesting depth (2) exceeded Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. controldepth.c: (in function f) controldepth.c:6:15: Maximum control nesting depth (1) exceeded Maximum number of control levels exceeded. (-controlnestdepth will suppress diff --git a/test/csyntax.out b/test/csyntax.out index b89ea41..ff3ef0b 100644 --- a/test/csyntax.out +++ b/test/csyntax.out @@ -1,68 +1,24 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. csyntax.c:20:5: Function main declared with 1 arg, should have 2 (int argc, char *argv[]) -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. csyntax2.c: (in function mapping_create) -csyntax2.c:13:3: Assignment of unsigned long int to int: x = sizeof((t)) -csyntax2.c:14:3: Assignment of unsigned long int to int: x = sizeof(*t) +csyntax2.c:13:3: Assignment of size_t to int: x = sizeof((t)) +csyntax2.c:14:3: Assignment of size_t to int: x = sizeof(*t) -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. csyntax3.c:3:4: Function main declared to return a1, should return int -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. csyntax13.c: (in function f) csyntax13.c:9:11: Variable isrs shadows outer declaration csyntax13.c:7:9: Previous definition of isrs: isr_t -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. csyntax16.c: (in function main) -csyntax16.c:16:23: Unrecognized identifier: atoi csyntax16.c:18:11: Variable getbuiltout used before definition -csyntax16.c:20:16: Unrecognized identifier: NULL -csyntax16.c:22:7: Unrecognized identifier: printf -csyntax16.c:23:7: Unrecognized identifier: exit -csyntax16.c:23:12: Unrecognized identifier: EXIT_SUCCESS -csyntax16.c:24:16: Unrecognized identifier: EXIT_FAILURE -csyntax16.c:25:2: Path with no return in function declared to return int csyntax16.c: (in function getbuiltout) csyntax16.c:43:14: Variable qpolygon used before definition +csyntax17.c: (in function f) +csyntax17.c:11:11: Variable x initialized to type EID_UNIT_NUM, expects int: + (EID_UNIT_NUM)3 +csyntax17.c:12:2: Path with no return in function declared to return int +csyntax17.c:11:7: Variable x declared but not used + diff --git a/test/czechnames.out b/test/czechnames.out index c95a380..02f01e2 100644 --- a/test/czechnames.out +++ b/test/czechnames.out @@ -1,11 +1,6 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. czechnames.c:5:5: Variable michelob_light name violates Czech naming convention. Czech prefix michelob is not the name of a type. Variable name is not consistent with Czech naming convention. (Setting either @@ -17,8 +12,6 @@ czechnames.c:26:5: Function budweiser name is not consistent with Czech naming Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. czechnames.c:26:5: Function budweiser name is not consistent with Czech naming convention. Accessible types: pivo Function or iterator name is not consistent with Czech naming convention. @@ -26,8 +19,6 @@ czechnames.c:26:5: Function budweiser name is not consistent with Czech naming Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. czechnames.c:4:5: Variable pivo_pyet name violates Czech naming convention. Czech prefix pivo names an abstract type that is not accessible. Use +accessczech to allow access to type in functions named _. diff --git a/test/decl.out b/test/decl.out index 77fa40d..ede7398 100644 --- a/test/decl.out +++ b/test/decl.out @@ -1,14 +1,10 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. decl.c: (in function main) decl.c:7:3: Call to non-function (type [function (int) returns int] **): x decl.c:8:2: Path with no return in function declared to return int Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. decl.c:3:5: Function main declared without parameter list decl.c: (in function main) decl.c:7:3: Call to non-function (type [function (int) returns int] **): x @@ -18,9 +14,14 @@ decl.c:1:5: Function test exported but not declared in header file Finished LCLint checking --- 5 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +decl2.c:3:6: Variable glob2 defined with inconsistent type (arrays and pointers + are not identical in variable declarations): int * + decl2.h:3:12: Previous declaration of glob2: int [] +decl2.c:4:5: Variable glob2 redefined + decl2.c:3:6: Previous definition of glob2 +decl2.c:6:6: Variable glob3 redeclared with inconsistent type: char + decl2.h:4:12: Previous declaration of glob3: int +decl2.c:9:5: Variable glob redefined + decl2.c:8:5: Previous definition of glob + +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/enum.out b/test/enum.out index d6c6a15..7491c1e 100644 --- a/test/enum.out +++ b/test/enum.out @@ -1,7 +1,72 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +enum.c:2:16: Enumerator member cero declared with inconsistent type: + enum { cero, uno, dos, tres } + enum.lcl:2:16: Specification of cero: enum { cero, uno, dos } +enum.c:2:22: Enumerator member uno declared with inconsistent type: + enum { cero, uno, dos, tres } + enum.lcl:2:22: Specification of uno: enum { cero, uno, dos } +enum.c:2:27: Enumerator member dos declared with inconsistent type: + enum { cero, uno, dos, tres } + enum.lcl:2:27: Specification of dos: enum { cero, uno, dos } +enum.c:2:39: Enum stype declared with members { cero, uno, dos, tres } but + specified with members { cero, uno, dos } + enum.lcl:2:33: Specification of stype +enum.c:4:22: Enumerator member siete declared with inconsistent type: + enum _itag { siete } + enum.lcl:3:23: Specification of siete: enum _ietag { siete } +enum.c:6:34: Structure st2 declared with fields { int a; int b; }, specified + with fields { int a; int b; int c; } + enum.lcl:6:41: Specification of st2 + enum.lcl:7:1: Field present in specification, missing in declaration: int c +enum.c: (in function f) +enum.c:15:7: Value a[] used before definition +enum.c:23:6: Missing cases in switch: two, three +enum.c:30:12: Case in switch not mtype member: three +enum.c:36:8: Missing case in switch: threem +enum.c:38:10: Duplicate case in switch: one +enum.c:47:2: Path with no return in function declared to return int +enum.c:51:8: Enumerator member hasta declared with inconsistent type: + enum { hasta, pasta, yummy } + enum.lcl:8:8: Specification of hasta: enum { hasta, pasta, yasta } +enum.c:51:15: Enumerator member pasta declared with inconsistent type: + enum { hasta, pasta, yummy } + enum.lcl:8:15: Specification of pasta: enum { hasta, pasta, yasta } +enum.lcl:3:9: Enum tag enum _ietag specified but not defined +enum.lcl:8:22: Enum member yasta specified but not defined + +Finished LCLint checking --- 16 code errors found, as expected + +enum.c:2:16: Enumerator member cero declared with inconsistent type: + enum { cero, uno, dos, tres } + enum.lcl:2:16: Specification of cero: enum { cero, uno, dos } +enum.c:2:22: Enumerator member uno declared with inconsistent type: + enum { cero, uno, dos, tres } + enum.lcl:2:22: Specification of uno: enum { cero, uno, dos } +enum.c:2:27: Enumerator member dos declared with inconsistent type: + enum { cero, uno, dos, tres } + enum.lcl:2:27: Specification of dos: enum { cero, uno, dos } +enum.c:2:39: Enum stype declared with members { cero, uno, dos, tres } but + specified with members { cero, uno, dos } + enum.lcl:2:33: Specification of stype +enum.c:4:22: Enumerator member siete declared with inconsistent type: + enum _itag { siete } + enum.lcl:3:23: Specification of siete: enum _ietag { siete } +enum.c:6:34: Structure st2 declared with fields { int a; int b; }, specified + with fields { int a; int b; int c; } + enum.lcl:6:41: Specification of st2 + enum.lcl:7:1: Field present in specification, missing in declaration: int c +enum.c: (in function f) +enum.c:15:7: Value a[] used before definition +enum.c:30:12: Case in switch not mtype member: three +enum.c:38:10: Duplicate case in switch: one +enum.c:47:2: Path with no return in function declared to return int +enum.c:51:8: Enumerator member hasta declared with inconsistent type: + enum { hasta, pasta, yummy } + enum.lcl:8:8: Specification of hasta: enum { hasta, pasta, yasta } +enum.c:51:15: Enumerator member pasta declared with inconsistent type: + enum { hasta, pasta, yummy } + enum.lcl:8:15: Specification of pasta: enum { hasta, pasta, yasta } +enum.lcl:3:9: Enum tag enum _ietag specified but not defined +enum.lcl:8:22: Enum member yasta specified but not defined + +Finished LCLint checking --- 14 code errors found, as expected diff --git a/test/exports.out b/test/exports.out index 43e8cae..d77c753 100644 --- a/test/exports.out +++ b/test/exports.out @@ -1,7 +1,5 @@ Warning: setting +typeuse redundant with current value -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. exports.h:1:13: Type exported, but not specified: myint exports.h:3:12: Variable exported, but not specified: glob exports.h:5:12: Function exported, but not specified: f @@ -13,15 +11,10 @@ exports.h:5:12: Function f declared but not used Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. exports.h:1:13: Type exported, but not specified: myint exports.h:3:12: Variable exported, but not specified: glob exports.h:5:12: Function exported, but not specified: f Finished LCLint checking --- 3 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found diff --git a/test/external.out b/test/external.out index 704bb42..a160763 100644 --- a/test/external.out +++ b/test/external.out @@ -1,11 +1,6 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. external.c:2:5: External identifier Func is not distinguishable from func in the first 6 characters because alphabetical case is ignored external.c:1:5: Declaration of func @@ -39,16 +34,19 @@ external.c:8:5: External identifier longfunction2 is not distinguishable from Finished LCLint checking --- 3 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. external.c:2:5: External identifier Func is not distinguishable from func in the first 3 characters because alphabetical case is ignored external.c:1:5: Declaration of func external.c:5:5: External identifier small2 is not distinguishable from small1 in the first 3 characters (sma) external.c:4:5: Declaration of small1 +external.c:7:5: External identifier longfunction1 is not distinguishable from + LONG_MAX in the first 3 characters because alphabetical case is ignored + load file ansi.lcd:785:1: Specification of LONG_MAX + One or more additional indistinguishable external names not reported external.c:8:5: External identifier longfunction2 is not distinguishable from - longfunction1 in the first 3 characters (lon) - external.c:7:5: Declaration of longfunction1 + LONG_MAX in the first 3 characters because alphabetical case is ignored + load file ansi.lcd:785:1: Specification of LONG_MAX + One or more additional indistinguishable external names not reported -Finished LCLint checking --- 3 code errors found, expected 4 +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/fields.out b/test/fields.out index aac7e84..d4deb3f 100644 --- a/test/fields.out +++ b/test/fields.out @@ -1,5 +1,44 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -fields.c:8:52: Old style declaration uses unlisted parameter: smalloc -*** Cannot continue. +fields.c: (in function pair_create1) +fields.c:37:10: Storage p->z reachable from return value is owned (should be + dependent) + fields.c:34:3: Storage p->z becomes owned +fields.c: (in function mangle) +fields.c:43:2: Released storage p->x reachable from parameter at return point + fields.c:42:9: Storage p->x is released +fields.c: (in function mangle2) +fields.c:49:2: Storage p->y reachable from parameter is dependent (should be + owned) + fields.c:48:3: Storage p->y becomes dependent +fields.c: (in function mangle3) +fields.c:55:10: Storage p->y reachable from return value is dependent (should + be owned) + fields.c:54:3: Storage p->y becomes dependent +fields.c: (in function f) +fields.c:60:3: Owned storage p->x (type int *) not released before assignment: + p->x = NULL +fields.c:62:18: Function returns with null storage derivable from parameter + p->x + fields.c:60:10: Storage p->x becomes null + +Finished LCLint checking --- 6 code errors found, as expected + +fields2.c: (in function pair_copy) +fields2.c:21:16: Storage p->x reachable from parameter is kept (should be + implicitly only) + fields2.c:17:3: Storage p->x becomes kept +fields2.c:21:16: Storage p->y reachable from parameter is kept (should be + implicitly only) + fields2.c:18:3: Storage p->y becomes kept +fields2.c: (in function pair_create) +fields2.c:30:3: Only storage p->y assigned to dependent: p->z = p->y +fields2.c:35:10: Storage p->y reachable from return value is unqualified + (should be implicitly only) +fields2.c: (in function pair_swankle) +fields2.c:43:14: Storage p->x reachable from passed parameter is kept (should + be implicitly only): p + fields2.c:42:3: Storage p->x becomes kept + +Finished LCLint checking --- 5 code errors found, as expected + +Finished LCLint checking --- no code errors found diff --git a/test/flags.out b/test/flags.out index 2a5b105..8716003 100644 --- a/test/flags.out +++ b/test/flags.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. flags.c:1:9: Variable x initialized to type char, expects int: 'c' flags.c:5:9: Variable y initialized to type @@ -38,8 +36,6 @@ flags.c:18:20: Flag linelen must be followed by a positive number Finished LCLint checking --- 8 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. flags.c:1:9: Variable x initialized to type char, expects int: 'c' flags.c:5:9: Variable y initialized to type char, expects int: 'c' diff --git a/test/funcpointer.out b/test/funcpointer.out index cf11d56..33be783 100644 --- a/test/funcpointer.out +++ b/test/funcpointer.out @@ -1,8 +1,9 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. funcpointer.c: (in function func2) -funcpointer.c:13:34: Unrecognized identifier: malloc +funcpointer.c:13:27: Possibly null storage returned as non-null: + (int *)malloc(sizeof(int)) +funcpointer.c:13:27: Returned storage not completely defined (storage pointed + to by [result of malloc] is undefined): (int *)malloc(sizeof(int)) funcpointer.c: (in function func5) funcpointer.c:19:28: Immediate address &i returned as implicitly only: &i funcpointer.c: (in function main) @@ -28,4 +29,4 @@ funcpointer.c:49:10: Function (t6) called with 1 args, expects 2 funcpointer.c:50:11: Function (t6) called with 1 args, expects 2 funcpointer.c:50:10: Function ((t6)(3)) called with 0 args, expects 1 -Finished LCLint checking --- 17 code errors found, expected 18 +Finished LCLint checking --- 18 code errors found, as expected diff --git a/test/glob.out b/test/glob.out index d6c6a15..fc0a32c 100644 --- a/test/glob.out +++ b/test/glob.out @@ -1,7 +1,31 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +glob.c: (in function useGlob) +glob.lcl:3: Global z listed but not used +glob.c: (in function dontuseGlob) +glob.c:13:11: Undocumented use of global x +glob.c: (in function callsUseGlob) +glob.c:23:11: Called procedure useGlob may access global y +glob.c:23:11: Called procedure useGlob may access global z + +Finished LCLint checking --- 4 code errors found, as expected + +glob.c: (in function dontuseGlob) +glob.c:13:11: Undocumented use of global x +glob.c: (in function callsUseGlob) +glob.c:23:11: Called procedure useGlob may access global y +glob.c:23:11: Called procedure useGlob may access global z + +Finished LCLint checking --- 3 code errors found, as expected + +glob.c: (in function useGlob) +glob.lcl:3: Global z listed but not used +glob.c: (in function dontuseGlob) +glob.c:13:11: Undocumented use of global x +glob.c: (in function unspec) +glob.c:18:11: Undocumented use of global y +glob.c:18:15: Undocumented use of global z +glob.c: (in function callsUseGlob) +glob.c:23:11: Called procedure useGlob may access global y +glob.c:23:11: Called procedure useGlob may access global z + +Finished LCLint checking --- 6 code errors found, as expected diff --git a/test/globals.out b/test/globals.out index 5388ec7..a8b08b3 100644 --- a/test/globals.out +++ b/test/globals.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. globals.c:5:41: Redundant checked qualifier on doubled globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict globals.c: (in function noglobs) @@ -11,8 +9,6 @@ globals.c:21:3: Undocumented use of global checkstrict Finished LCLint checking --- 5 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. globals.c:5:41: Redundant checked qualifier on doubled globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict globals.c: (in function noglobs) @@ -24,8 +20,6 @@ globals.c:21:3: Undocumented use of global checkstrict Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. globals.c:5:41: Redundant checked qualifier on doubled globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict globals.c: (in function noglobs) @@ -37,15 +31,11 @@ globals.c:21:3: Undocumented use of global checkstrict Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. globals.c:5:41: Redundant checked qualifier on doubled globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. globals.c:5:41: Redundant checked qualifier on doubled globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict globals.c: (in function noglobs) @@ -57,8 +47,6 @@ globals.c:21:3: Undocumented use of global checkstrict Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. globals.c:5:41: Redundant checked qualifier on doubled globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict globals.c: (in function noglobs) diff --git a/test/impabstract.out b/test/impabstract.out index 1ccf5b6..6a18929 100644 --- a/test/impabstract.out +++ b/test/impabstract.out @@ -1,11 +1,6 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. impabstract.c: (in function f) impabstract.c:11:7: Left operand of < is abstract type (mint): m < 2 An abstraction barrier is broken. If necessary, use /*@access @*/ to @@ -16,9 +11,23 @@ impabstract.c:13:14: Return value type mint does not match declared type int: m Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +impabstract.c:2:28: Mutable abstract type cint declared without pointer + indirection: int (violates assignment semantics) + LCL semantics requires that a mutable type exhibits sharing semantics. In + order for objects to be shared a indirection is necessary in the + representation. A mutable type may be represented by a pointer or an abstract + mutable type. Handles into static data are fine, too, but will generate this + error message unless it is suppressed. (-mutrep will suppress message) +impabstract.c:2:28: Datatype cint inconsistently declared as concrete type + A function, variable or constant is redefined with a different type. + (-incondefs will suppress message) + impabstract.lcl:2:1: Specification of cint +impabstract.c: (in function f) +impabstract.c:6:7: Left operand of > is abstract type (cint): c > 3 + An abstraction barrier is broken. If necessary, use /*@access @*/ to + allow access to an abstract type. (-abstract will suppress message) +impabstract.c:8:14: Return value type cint does not match declared type int: c + Underlying types match, but cint is an abstract type that is not accessible + here. + +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/init.out b/test/init.out index deae329..8b68bd5 100644 --- a/test/init.out +++ b/test/init.out @@ -1,12 +1,13 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -init.c:1:16: Unrecognized identifier: NULL +init.c:1:16: Global c[0] initialized to null value: c[0] = NULL init.c:1:43: Initial value of c[2][2] is type int, expects char: 3 +init.c:1:48: Global c[3] initialized to null value: c[3] = NULL +init.c:4:23: Global st.uname initialized to null value: st.uname = NULL init.c:4:29: Initial value of st.y is type double, expects int: 1.2 init.c:7:7: Initializer block for st2[0] has 3 fields, but struct { char * name; int [] x; char * uname;, ... } has 4 fields: "bob", { 1, 2 }, NULL init.c:8:19: Initial value of st2[1].x is type int, expects int []: 3 +init.c:8:22: Global st2[1].uname initialized to null value: st2[1].uname = NULL init.c:10:13: Initializer block for a has 7 elements, but declared as int [10]: 1, 2, 3, 4, 3.4, 6, 4 init.c:10:27: Initial value of a[4] is type double, expects int: 3.4 @@ -16,4 +17,30 @@ init.c:14:13: Initializer block for b has 2 elements, but declared as int [10]: init.c:14:15: Initializer block used for b[0] where int is expected: { 1, 2 } init.c:14:25: Initializer block used for b[1] where int is expected: { 3, 4 } -Finished LCLint checking --- 11 code errors found, expected 14 +Finished LCLint checking --- 14 code errors found, as expected + +init.c:1:16: Global c[0] initialized to null value: c[0] = NULL +init.c:1:22: Read-only string literal storage used as initial value for + unqualified storage: c[1] = "hullo" +init.c:1:43: Initial value of c[2][2] is type int, expects char: 3 +init.c:1:48: Global c[3] initialized to null value: c[3] = NULL +init.c:4:7: Read-only string literal storage used as initial value for + unqualified storage: st.name = "bob" +init.c:4:23: Global st.uname initialized to null value: st.uname = NULL +init.c:4:29: Initial value of st.y is type double, expects int: 1.2 +init.c:7:7: Initializer block for st2[0] has 3 fields, but struct { char * + name; int [] x; char * uname;, ... } has 4 fields: "bob", { 1, 2 }, NULL +init.c:8:9: Read-only string literal storage used as initial value for + unqualified storage: st2[1].name = "charly" +init.c:8:19: Initial value of st2[1].x is type int, expects int []: 3 +init.c:8:22: Global st2[1].uname initialized to null value: st2[1].uname = NULL +init.c:10:13: Initializer block for a has 7 elements, but declared as int [10]: + 1, 2, 3, 4, 3.4, 6, 4 +init.c:10:27: Initial value of a[4] is type double, expects int: 3.4 +init.c:12:34: Initial value of aa[1][1] is type double, expects int: 3.2 +init.c:14:13: Initializer block for b has 2 elements, but declared as int [10]: + { 1, 2 }, { 3, 4 } +init.c:14:15: Initializer block used for b[0] where int is expected: { 1, 2 } +init.c:14:25: Initializer block used for b[1] where int is expected: { 3, 4 } + +Finished LCLint checking --- 17 code errors found, as expected diff --git a/test/inparam.out b/test/inparam.out index 530f398..72a0e1e 100644 --- a/test/inparam.out +++ b/test/inparam.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. inparam.c: (in function f) inparam.c:8:16: Passed storage x not completely defined (*x is undefined): unknown (x) @@ -9,8 +7,6 @@ inparam.c:12:16: Passed storage x not completely defined (*x is undefined): Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. inparam.c: (in function f) inparam.c:12:16: Passed storage x not completely defined (*x is undefined): inparam (x) diff --git a/test/internal.out b/test/internal.out index eb2140b..38ad1f9 100644 --- a/test/internal.out +++ b/test/internal.out @@ -1,14 +1,10 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. internal.c: (in function f1) internal.c:21:9: Variable e1 shadows outer declaration internal.c:12:7: Previous definition of e1: int Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. internal.c:4:5: Internal identifier iwonderhowmanycharactersaresignificant2 is not distinguishable from iwonderhowmanycharactersaresignificant1 in the first 31 characters (iwonderhowmanycharactersaresign) @@ -19,8 +15,6 @@ internal.c:21:9: Variable e1 shadows outer declaration Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. internal.c:4:5: Internal identifier iwonderhowmanycharactersaresignificant2 is not distinguishable from iwonderhowmanycharactersaresignificant1 in the first 28 characters (iwonderhowmanycharactersares) @@ -35,8 +29,6 @@ internal.c:21:9: Variable e1 shadows outer declaration Finished LCLint checking --- 3 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. internal.c: (in function f1) internal.c:15:8: Internal identifier Alphabet is not distinguishable from alphabet without case sensitivity @@ -49,8 +41,6 @@ internal.c:23:11: Internal identifier lcAse is not distinguishable from lcase Finished LCLint checking --- 3 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. internal.c:10:6: Internal identifier f1 is not distinguishable from fl except by lookalike characters internal.c:8:12: Declaration of fl diff --git a/test/iter.out b/test/iter.out index d6c6a15..65d4e38 100644 --- a/test/iter.out +++ b/test/iter.out @@ -1,7 +1,52 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +iter.lcl:3:6: Iterator has no yield parameters: noYield +iter.c: (in function test) +iter.c:9:14: Unrecognized identifier: x +iter.c:14:16: Yield parameter shadows local declaration: i + iter.c:6:7: Declaration of i +iter.c:18:8: Iter intFor not balanced with end_intFor +iter.c:14:12: Iter intFor expects arg 2 to be int gets char: c +iter.c:20:20: Variable i used before definition +iter.c:20:20: Yield parameter is not simple identifier: i + 3 +iter.c:24:24: Iter intFor not balanced with end_intFor: end_arrayElements +iter.h: (in iter intFor) +iter.h:1:27: Parameter ___x name is not consistent with macro variable + namespace prefix "m_" +iter.h: (in iter arrayElements) +iter.h:7:31: Parameter ___x name is not consistent with macro variable + namespace prefix "m_" +iter.h:7:43: Variable ___c name is not consistent with macro variable namespace + prefix "m_" +iter.h:7:55: Variable ___b name is not consistent with macro variable namespace + prefix "m_" +iter.h:8:1: Macro parameter j used in conditionally executed code (may or may + not be evaluated exactly once) (in post loop test) +iter.lcl:3:6: Iterator noYield specified but not defined +iter.lcl:3:6: Iterator finalizer end_noYield specified but not defined + +Finished LCLint checking --- 1 spec error found, as expected + 14 code errors found, as expected + +iter2.c: (in function test) +iter2.c:9:14: Unrecognized identifier: x +iter2.c:14:16: Yield parameter shadows local declaration: i + iter2.c:6:7: Declaration of i +iter2.c:17:8: Iter intFor not balanced with end_intFor +iter2.c:14:12: Iter intFor expects arg 2 to be int gets char: c +iter2.c:19:17: Variable i used before definition +iter2.c:19:17: Yield parameter is not simple identifier: i + 3 +iter2.c:22:24: Iter intFor not balanced with end_intFor: end_arrayElements +iter2.h: (in iter intFor) +iter2.h:2:27: Parameter ___x name is not consistent with macro variable + namespace prefix "m_" +iter2.h: (in iter arrayElements) +iter2.h:8:31: Parameter ___x name is not consistent with macro variable + namespace prefix "m_" +iter2.h:8:43: Variable ___c name is not consistent with macro variable + namespace prefix "m_" +iter2.h:8:55: Variable ___b name is not consistent with macro variable + namespace prefix "m_" +iter2.h:9:1: Macro parameter j used in conditionally executed code (may or may + not be evaluated exactly once) (in post loop test) + +Finished LCLint checking --- 12 code errors found, as expected diff --git a/test/libs.out b/test/libs.out index 48f575f..e58debb 100644 --- a/test/libs.out +++ b/test/libs.out @@ -1,11 +1,196 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. libs.c: (in function compare2) libs.c:14:10: Observer storage returned without qualification: "ok" libs.c:14:10: Storage becomes observer libs.c: (in function leave) -libs.c:20:3: Unrecognized identifier: exit -libs.c:25:21: Parse Error: Inconsistent function parameter syntax: FILE : - ?. (For help on parse errors, see lclint -help parseerrors.) -*** Cannot continue. +libs.c:20:9: Function exit expects arg 1 to be int gets char *: "hullo" +libs.c:21:3: Unreachable code: exit(i) +libs.c: (in function print) +libs.c:29:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:30:3: Format string parameter to printf is not a compile-time constant: + s +libs.c:31:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:33:3: Assignment of int to char: c = fgetc(f) +libs.c:34:3: Assignment of int to char: c = getc(f) +libs.c: (in function main) +libs.c:46:44: Function bsearch expects arg 4 to be size_t gets [function (int, + int) returns int]: compare +libs.c:46:10: Function bsearch called with 4 args, expects 5 +libs.c:48:50: Function bsearch expects arg 5 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:48:3: Return value (type void *) ignored: bsearch(NULL, NU... +libs.c:52:10: Function qsort expects arg 1 to be void * gets unsigned int: x +libs.c:52:19: Function qsort expects arg 4 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:54:11: Unrecognized identifier: SIGHUP +libs.c:54:19: Function signal expects arg 2 to be [function (int) returns void] + * gets [function (int, int) returns int]: compare +libs.c:54:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, c... +libs.c:55:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, l... + +Finished LCLint checking --- 18 code errors found, as expected + +libs.c: (in function compare2) +libs.c:14:10: Observer storage returned without qualification: "ok" + libs.c:14:10: Storage becomes observer +libs.c: (in function leave) +libs.c:20:9: Function exit expects arg 1 to be int gets char *: "hullo" +libs.c:21:3: Unreachable code: exit(i) +libs.c: (in function print) +libs.c:29:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:30:3: Format string parameter to printf is not a compile-time constant: + s +libs.c:31:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:33:3: Assignment of int to char: c = fgetc(f) +libs.c:34:3: Assignment of int to char: c = getc(f) +libs.c: (in function main) +libs.c:46:44: Function bsearch expects arg 4 to be size_t gets [function (int, + int) returns int]: compare +libs.c:46:10: Function bsearch called with 4 args, expects 5 +libs.c:48:50: Function bsearch expects arg 5 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:48:3: Return value (type void *) ignored: bsearch(NULL, NU... +libs.c:51:16: Function qsort expects arg 2 to be size_t gets unsigned int: x +libs.c:51:19: Function qsort expects arg 3 to be size_t gets unsigned int: x +libs.c:52:10: Function qsort expects arg 1 to be void * gets unsigned int: x +libs.c:52:13: Function qsort expects arg 2 to be size_t gets unsigned int: x +libs.c:52:16: Function qsort expects arg 3 to be size_t gets unsigned int: x +libs.c:52:19: Function qsort expects arg 4 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:54:11: Unrecognized identifier: SIGHUP +libs.c:54:19: Function signal expects arg 2 to be [function (int) returns void] + * gets [function (int, int) returns int]: compare +libs.c:54:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, c... +libs.c:55:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, l... + +Finished LCLint checking --- 22 code errors found, as expected + +libs.c: (in function compare2) +libs.c:14:10: Observer storage returned without qualification: "ok" + libs.c:14:10: Storage becomes observer +libs.c: (in function leave) +libs.c:20:9: Function exit expects arg 1 to be int gets char *: "hullo" +libs.c:21:3: Unreachable code: exit(i) +libs.c: (in function print) +libs.c:29:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:29:3: Undocumented modification of *f possible from call to fprintf: + fprintf(f, s) +libs.c:30:3: Format string parameter to printf is not a compile-time constant: + s +libs.c:31:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:33:7: Undocumented modification of *f possible from call to fgetc: + fgetc(f) +libs.c:33:3: Assignment of int to char: c = fgetc(f) +libs.c:34:7: Undocumented modification of *f possible from call to getc: + getc(f) +libs.c:34:3: Assignment of int to char: c = getc(f) +libs.c: (in function main) +libs.c:46:44: Function bsearch expects arg 4 to be size_t gets [function (int, + int) returns int]: compare +libs.c:46:10: Function bsearch called with 4 args, expects 5 +libs.c:48:50: Function bsearch expects arg 5 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:48:3: Return value (type void *) ignored: bsearch(NULL, NU... +libs.c:51:16: Function qsort expects arg 2 to be size_t gets unsigned int: x +libs.c:51:19: Function qsort expects arg 3 to be size_t gets unsigned int: x +libs.c:52:10: Function qsort expects arg 1 to be void * gets unsigned int: x +libs.c:52:13: Function qsort expects arg 2 to be size_t gets unsigned int: x +libs.c:52:16: Function qsort expects arg 3 to be size_t gets unsigned int: x +libs.c:52:19: Function qsort expects arg 4 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:54:11: Unrecognized identifier: SIGHUP +libs.c:54:19: Function signal expects arg 2 to be [function (int) returns void] + * gets [function (int, int) returns int]: compare +libs.c:54:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, c... +libs.c:55:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, l... + +Finished LCLint checking --- 25 code errors found, as expected + +libs.c: (in function compare2) +libs.c:14:10: Observer storage returned without qualification: "ok" + libs.c:14:10: Storage becomes observer +libs.c: (in function leave) +libs.c:20:9: Function exit expects arg 1 to be int gets char *: "hullo" +libs.c:21:3: Unreachable code: exit(i) +libs.c: (in function print) +libs.c:29:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:29:3: Undocumented modification of *f possible from call to fprintf: + fprintf(f, s) +libs.c:29:3: Return value (type int) ignored: fprintf(f, s) +libs.c:30:3: Format string parameter to printf is not a compile-time constant: + s +libs.c:30:3: Called procedure printf may access global stdout +libs.c:30:3: Undocumented modification of *stdout possible from call to printf: + printf(s) +libs.c:30:3: Return value (type int) ignored: printf(s) +libs.c:31:12: Undocumented use of global stderr +libs.c:31:3: Format string parameter to fprintf is not a compile-time constant: + s +libs.c:31:3: Undocumented modification of *stderr possible from call to + fprintf: fprintf(stderr, s) +libs.c:31:3: Return value (type int) ignored: fprintf(stderr, s) +libs.c:33:7: Called procedure fgetc may access global errno +libs.c:33:7: Undocumented modification of *f possible from call to fgetc: + fgetc(f) +libs.c:33:7: Undocumented modification of errno possible from call to fgetc: + fgetc(f) +libs.c:33:3: Assignment of int to char: c = fgetc(f) +libs.c:34:7: Undocumented modification of *f possible from call to getc: + getc(f) +libs.c:34:3: Assignment of int to char: c = getc(f) +libs.c: (in function main) +libs.c:46:44: Function bsearch expects arg 4 to be size_t gets [function (int, + int) returns int]: compare +libs.c:46:10: Function bsearch called with 4 args, expects 5 +libs.c:48:50: Function bsearch expects arg 5 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:48:3: Return value (type void *) ignored: bsearch(NULL, NU... +libs.c:51:16: Function qsort expects arg 2 to be size_t gets unsigned int: x +libs.c:51:19: Function qsort expects arg 3 to be size_t gets unsigned int: x +libs.c:51:3: Called procedure qsort may access global errno +libs.c:51:3: Undocumented modification of errno possible from call to qsort: + qsort(NULL, x, x, ([function () returns int] *)compare) +libs.c:52:10: Function qsort expects arg 1 to be void * gets unsigned int: x +libs.c:52:13: Function qsort expects arg 2 to be size_t gets unsigned int: x +libs.c:52:16: Function qsort expects arg 3 to be size_t gets unsigned int: x +libs.c:52:19: Function qsort expects arg 4 to be [function (void *, void *) + returns int] * gets [function () returns char] *: + ([function () returns char] *)compare2 +libs.c:52:3: Called procedure qsort may access global errno +libs.c:52:3: Undocumented modification of errno possible from call to qsort: + qsort(x, x, x, ([function () returns char] *)compare2) +libs.c:54:11: Unrecognized identifier: SIGHUP +libs.c:54:19: Function signal expects arg 2 to be [function (int) returns void] + * gets [function (int, int) returns int]: compare +libs.c:54:3: Called procedure signal may access global errno +libs.c:54:3: Undocumented modification of errno possible from call to signal: + signal(SIGHUP, compare) +libs.c:54:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, c... +libs.c:55:3: Called procedure signal may access global errno +libs.c:55:3: Undocumented modification of errno possible from call to signal: + signal(SIGHUP, leave) +libs.c:55:3: Return value (type [function (int) returns void]) ignored: + signal(SIGHUP, l... + +Finished LCLint checking --- 42 code errors found, as expected diff --git a/test/lintcomments.out b/test/lintcomments.out index 75e55ea..0336249 100644 --- a/test/lintcomments.out +++ b/test/lintcomments.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. lintcomments.c: (in function f) lintcomments.c:8:33: Traditional lint comment /*FALLTHROUGH*/ used. This is interpreted by LCLint in the same way as most Unix lints, but it is @@ -15,15 +13,11 @@ lintcomments.c:23:21: Traditional lint comment /*NOTREACHED*/ used. This is Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. lintcomments.c: (in function f) lintcomments.c:11:13: Fall through case (no preceding break) Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. lintcomments.c: (in function f) lintcomments.c:9:10: Fall through case (no preceding break) lintcomments.c:10:10: Fall through case (no preceding break) diff --git a/test/list.out b/test/list.out index 13a8303..ee785f8 100644 --- a/test/list.out +++ b/test/list.out @@ -1,5 +1,11 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -list.c:8:20: Old style declaration uses unlisted parameter: smalloc -*** Cannot continue. +list.c: (in function list_addh) +list.c:24:5: Variable e is kept in true branch, but not kept in continuation. + list.c:23:7: Storage e becomes kept +list.c:25:2: Storage *(l->next) reachable from parameter contains 1 undefined + field: next +list.c: (in function list_addh2) +list.c:39:2: Storage *(l->next) reachable from parameter contains 1 undefined + field: next + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/macrosef.out b/test/macrosef.out index d6c6a15..ea001c1 100644 --- a/test/macrosef.out +++ b/test/macrosef.out @@ -1,7 +1,34 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +macrosef.c: (in macro f) +macrosef.c:2:14: Macro parameter y used more than once +macrosef.c: (in function m) +macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify + file system state: (printf("yo\n"), 3) +macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify + *stdout: (printf("yo\n"), 3) +macrosef.c:14:14: Parameter 1 to f is declared sef, but the argument may modify + *p: g(p) + +Finished LCLint checking --- 4 code errors found, as expected + +macrosef.c: (in macro f) +macrosef.c:2:14: Macro parameter y used more than once +macrosef.c: (in function m) +macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify + file system state: (printf("yo\n"), 3) +macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify + *stdout: (printf("yo\n"), 3) + +Finished LCLint checking --- 3 code errors found, as expected + +macrosef.c: (in macro f) +macrosef.c:2:14: Macro parameter y used more than once +macrosef.c: (in function m) +macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify + file system state: (printf("yo\n"), 3) +macrosef.c:12:14: Parameter 1 to f is declared sef, but the argument may modify + *stdout: (printf("yo\n"), 3) +macrosef.c:14:14: Parameter 1 to f is declared sef, but the argument calls + unconstrained function g (no guarantee it will not modify something): g(p) + +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/merge.out b/test/merge.out index 03f868a..3b93b60 100644 --- a/test/merge.out +++ b/test/merge.out @@ -1,14 +1,11 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -merge.c: (in function f1) -merge.c:13:11: Unrecognized identifier: NULL -merge.c:14:22: Unrecognized identifier: free merge.c: (in function f2) +merge.c:33:4: Variable y used in inconsistent state + merge.c:30:28: Storage y becomes inconsistent (released on one branch) merge.c:33:4: Dereference of possibly null pointer y: *y merge.c:21:12: Storage y may become null merge.c: (in function f3) merge.c:51:4: Dereference of possibly null pointer y: *y merge.c:50:7: Storage y may become null -Finished LCLint checking --- 4 code errors found, expected 3 +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/modifies.out b/test/modifies.out index ef7b93b..09ac059 100644 --- a/test/modifies.out +++ b/test/modifies.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. modifies.c:7:29: Modifies list uses internalState which is a variable and has special meaning in a modifies list. (Special meaning assumed.) modifies.c:4:25: Declaration of internalState diff --git a/test/modtest.out b/test/modtest.out index d6c6a15..b91492f 100644 --- a/test/modtest.out +++ b/test/modtest.out @@ -1,7 +1,59 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +modtest.c: (in function g) +modtest.lcl:15: Global x listed but not used +modtest.lcl:15: Global y listed but not used +modtest.c:9:12: Parameter a not used +modtest.c:9:22: Parameter p not used +modtest.c: (in function f) +modtest.c:16:3: Undocumented modification of i[3]: i[3] = y +modtest.c:17:3: Undocumented modification of j[2]: j[2] = x +modtest.c:22:3: Undocumented modification of y: y++ +modtest.c:25:3: Undocumented modification of tstp->b: tstp->b = 6 +modtest.c:26:3: Undocumented modification of y possible from call to g: g(j, i) +modtest.c:26:3: Return value (type int) ignored: g(j, i) + +Finished LCLint checking --- 10 code errors found, as expected + +modtest.c: (in function g) +modtest.lcl:15: Global x listed but not used +modtest.lcl:15: Global y listed but not used +modtest.c:9:12: Parameter a not used +modtest.c:9:22: Parameter p not used +modtest.c: (in function f) +modtest.c:16:3: Undocumented modification of i[3]: i[3] = y +modtest.c:17:3: Undocumented modification of j[2]: j[2] = x +modtest.c:22:3: Undocumented modification of y: y++ +modtest.c:25:3: Undocumented modification of tstp->b: tstp->b = 6 +modtest.c:26:3: Undocumented modification of y possible from call to g: g(j, i) +modtest.c:26:3: Return value (type int) ignored: g(j, i) +modtest.c: (in function h) +modtest.c:33:3: Undocumented modification of y: y++ +modtest.c:34:10: Undocumented modification of x possible from call to g: + g(a, &x) +modtest.c:34:10: Undocumented modification of y possible from call to g: + g(a, &x) + +Finished LCLint checking --- 13 code errors found, as expected + +modtest.c: (in function g) +modtest.lcl:15: Global x listed but not used +modtest.lcl:15: Global y listed but not used +modtest.c:12:1: Suspect object listed in modifies of g not modified: x + modtest.lcl:15: Specification of g +modtest.c:12:1: Suspect object listed in modifies of g not modified: y + modtest.lcl:15: Specification of g +modtest.c:9:12: Parameter a not used +modtest.c:9:22: Parameter p not used +modtest.c: (in function f) +modtest.c:16:3: Undocumented modification of i[3]: i[3] = y +modtest.c:17:3: Undocumented modification of j[2]: j[2] = x +modtest.c:22:3: Undocumented modification of y: y++ +modtest.c:25:3: Undocumented modification of tstp->b: tstp->b = 6 +modtest.c:26:3: Undocumented modification of y possible from call to g: g(j, i) +modtest.c:26:3: Return value (type int) ignored: g(j, i) +modtest.c:29:1: Suspect object listed in modifies of f not modified: ai[6] + modtest.lcl:8: Specification of f +modtest.c:29:1: Suspect object listed in modifies of f not modified: tstp->a + modtest.lcl:8: Specification of f + +Finished LCLint checking --- 14 code errors found, as expected diff --git a/test/moduncon.out b/test/moduncon.out index 1e72d89..dfde8e6 100644 --- a/test/moduncon.out +++ b/test/moduncon.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. moduncon.c: (in function g) moduncon.c:12:10: Undetected modification possible from call to unconstrained function umod: umod @@ -13,8 +11,6 @@ moduncon.c:13:10: Undetected modification possible from call to unconstrained Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. moduncon.c: (in function f) moduncon.c:6:22: Undetected modification possible from call to unconstrained function umod: umod diff --git a/test/mongoincludes.out b/test/mongoincludes.out index e6dad52..a996071 100644 --- a/test/mongoincludes.out +++ b/test/mongoincludes.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. minc1.h:1: Maximum include nesting depth (1, current depth 2) exceeded mongoincludes.c:1: Include site minc4.h:1: Maximum include nesting depth (1, current depth 3) exceeded @@ -57,8 +55,6 @@ minc3.h:2: Maximum include nesting depth (1, current depth 2) exceeded Finished LCLint checking --- 19 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. minc4.h:1: Maximum include nesting depth (2, current depth 3) exceeded minc1.h:1: Include site mongoincludes.c:1: Include site @@ -97,8 +93,6 @@ minc3.h:2: Maximum include nesting depth (2, current depth 3) exceeded Finished LCLint checking --- 10 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. minc3.h:1: Maximum include nesting depth (3, current depth 4) exceeded minc2.h:1: Include site minc1.h:3: Include site @@ -119,8 +113,6 @@ minc4.h:1: Maximum include nesting depth (3, current depth 4) exceeded Finished LCLint checking --- 4 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. minc4.h:1: Maximum include nesting depth (4, current depth 5) exceeded minc3.h:1: Include site minc2.h:1: Include site @@ -129,7 +121,4 @@ minc4.h:1: Maximum include nesting depth (4, current depth 5) exceeded Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found diff --git a/test/mystrncat.out b/test/mystrncat.out index 2013167..4bb212d 100644 --- a/test/mystrncat.out +++ b/test/mystrncat.out @@ -1,13 +1,9 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. mystrncat.c: (in function func) -mystrncat.c:10:7: Unrecognized identifier: malloc -mystrncat.c:11:3: Unrecognized identifier: assert -mystrncat.c:11:15: Unrecognized identifier: NULL mystrncat.c:12:13: Passed storage buffer not completely defined (*buffer is undefined): mystrncat (buffer, ...) -mystrncat.c:15:3: Unrecognized identifier: free +mystrncat.c:13:13: Passed storage b not completely defined (*b is undefined): + mystrncat (b, ...) mystrncat.c:12:3: Possible out-of-bounds store: Unable to resolve constraint: requires maxRead(buffer @ mystrncat.c:12:13) <= 0 @@ -18,12 +14,11 @@ mystrncat.c:12:3: Possible out-of-bounds store: requires maxSet() >= maxRead() + mystrncat.c:13:3: Possible out-of-bounds store: Unable to resolve constraint: - requires maxSet(malloc(256) @ mystrncat.c:10:7) >= maxRead(malloc(256) @ - mystrncat.c:10:7) + 255 + requires maxRead(malloc(256) @ mystrncat.c:10:7) <= 0 needed to satisfy precondition: requires maxSet(b @ mystrncat.c:13:13) >= maxRead(b @ mystrncat.c:13:13) + 255 derived from mystrncat precondition: requires maxSet() >= maxRead() + -Finished LCLint checking --- 7 code errors found, expected 4 +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/noeffect.out b/test/noeffect.out index de51785..394f14c 100644 --- a/test/noeffect.out +++ b/test/noeffect.out @@ -1,19 +1,13 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. noeffect.c: (in macro exprNode_swap) noeffect.c:3:59: Assignment to macro parameter: e1 A macro parameter is used as the left side of an assignment expression. This exhibits behavior that could not be implemented by a function. (-macroassign will suppress message) noeffect.c:3:72: Assignment to macro parameter: e2 -noeffect.c:3:95: Unrecognized identifier in macro definition: FALSE - An unrecognized identifier appears in a macro. If the identifier is defined - before the macro is used, then this is okay. (-macrounrecog will suppress - message) noeffect.c:2:18: File static function exprNode_swap declared but not used A function is declared but not used. Use /*@unused@*/ in front of function header to suppress message. (-fcnuse will suppress message) noeffect.c:3: Definition of exprNode_swap -Finished LCLint checking --- 4 code errors found, expected 3 +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/null.out b/test/null.out index 871141d..192475a 100644 --- a/test/null.out +++ b/test/null.out @@ -1,17 +1,179 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -null1.c: (in function ptrpred) -null1.c:7:16: Unrecognized identifier: NULL null1.c: (in function f) -null1.c:12:19: Unrecognized identifier: malloc null1.c:19:20: Implicitly temp storage x returned as only: x null1.c:19:20: Possibly null storage x returned as non-null: x null1.c:10:35: Storage x may become null -null1.c:32:3: Unrecognized identifier: free +null1.c:19:22: Fresh storage y not released before return + null1.c:12:41: Fresh storage y allocated +null1.c:31:4: Dereference of possibly null pointer y: *y + null1.c:12:12: Storage y may become null +null1.c:34:5: Possibly null storage z passed as non-null param: g (z) + null1.c:25:7: Storage z may become null +null1.c:34:5: Passed storage z not completely defined (*z is undefined): g (z) null1.c:39:14: Dereference of null pointer z: *z null1.c:25:7: Storage z becomes null +null1.c:43:22: Dereference of possibly null pointer z4: *z4 + null1.c:42:8: Storage z4 may become null +null1.c:46:25: Dereference of possibly null pointer z2: *z2 + null1.c:26:8: Storage z2 may become null +null1.c:49:11: Dereference of possibly null pointer z3: *z3 + null1.c:27:8: Storage z3 may become null +null1.c:55:4: Dereference of possibly null pointer z2: *z2 + null1.c:51:8: Storage z2 may become null +null1.c:59:23: Dereference of possibly null pointer z5: *z5 + null1.c:57:8: Storage z5 may become null null1.c:67:10: Possibly null storage z returned as non-null: z null1.c:25:7: Storage z may become null +null1.c:67:12: Fresh storage z3 not released before return + null1.c:27:3: Fresh storage z3 allocated + +Finished LCLint checking --- 14 code errors found, as expected + +null1.c: (in function f) +null1.c:19:20: Implicitly temp storage x returned as only: x +null1.c:19:22: Fresh storage y not released before return + null1.c:12:41: Fresh storage y allocated +null1.c:34:5: Passed storage z not completely defined (*z is undefined): g (z) +null1.c:67:12: Fresh storage z3 not released before return + null1.c:27:3: Fresh storage z3 allocated + +Finished LCLint checking --- 4 code errors found, as expected + +null2.c: (in function f) +null2.c:15:10: Left operand of && is non-boolean (int *): x1 && (*x1 == 3) +null2.c:16:19: Dereference of possibly null pointer x2: *x2 + null2.c:10:55: Storage x2 may become null +null2.c:17:18: Dereference of possibly null pointer x3: *x3 + null2.c:11:21: Storage x3 may become null +null2.c:17:10: Left operand of || is non-boolean (int *): x3 || (*x3 == 3) +null2.c:20:27: Dereference of possibly null pointer x1: *x1 + null2.c:10:35: Storage x1 may become null +null2.c:23:7: Left operand of && is non-boolean (int *): x4 && (*x4 == 3) +null2.c:30:8: Dereference of possibly null pointer x4: *x4 + null2.c:11:41: Storage x4 may become null +null2.c:35:14: Implicitly temp storage x3 returned as only: (x3) +null2.c:35:14: Possibly null storage x3 returned as non-null: (x3) + null2.c:11:21: Storage x3 may become null +null2.c:39:10: Implicitly temp storage x1 returned as only: (x1) + +Finished LCLint checking --- 10 code errors found, as expected + +null3.c: (in function f3) +null3.c:16:4: Dereference of possibly null pointer gnip: *gnip + null3.c:3:25: Storage gnip may become null +null3.c: (in function f) +null3.c:27:4: Dereference of possibly null pointer arg0: *arg0 +null3.c:37:8: Dereference of possibly null pointer z: *z + null3.c:25:12: Storage z may become null +null3.c:38:16: Only storage aip not released before return + null3.c:22:66: Storage aip becomes only +null3.c:44:4: Dereference of possibly null pointer arg2: *arg2 +null3.c:52:4: Dereference of possibly null pointer gnip: *gnip + null3.c:51:10: Storage gnip may become null +null3.c:53:9: Variable z used after being released + null3.c:51:3: Storage z released +null3.c:53:3: Only storage gip (type int *) not released before assignment (z + aliases gnip): gip = z + null3.c:5:17: Storage gip becomes only +null3.c:55:3: Only storage gnip (type nip) not released before assignment: + gnip = aip + null3.c:53:3: Storage gnip becomes only +null3.c:60:14: Returned storage y not completely defined (*y is undefined): y +null3.c:60:16: Function returns with non-null global gip referencing null + storage + null3.c:53:9: Storage gip may become null +null3.c:65:14: Possibly null storage y returned as non-null: y + null3.c:24:12: Storage y may become null +null3.c:65:14: Returned storage y not completely defined (*y is undefined): y +null3.c:65:16: Function returns with non-null global gip referencing null + storage + null3.c:53:9: Storage gip may become null +null3.c: (in function f2) +null3.c:73:4: Dereference of possibly null pointer gnip: *gnip + null3.c:55:10: Storage gnip may become null + +Finished LCLint checking --- 15 code errors found, as expected + +null3.c: (in function f3) +null3.c:16:4: Dereference of possibly null pointer gnip: *gnip + null3.c:3:25: Storage gnip may become null +null3.c: (in function f) +null3.c:27:4: Dereference of possibly null pointer arg0: *arg0 +null3.c:35:13: Possibly null storage y passed as non-null param: free (y) + null3.c:24:12: Storage y may become null +null3.c:37:8: Dereference of possibly null pointer z: *z + null3.c:25:12: Storage z may become null +null3.c:38:16: Only storage aip not released before return + null3.c:22:66: Storage aip becomes only +null3.c:44:4: Dereference of possibly null pointer arg2: *arg2 +null3.c:52:4: Dereference of possibly null pointer gnip: *gnip + null3.c:51:10: Storage gnip may become null +null3.c:53:9: Variable z used after being released + null3.c:51:3: Storage z released +null3.c:53:3: Only storage gip (type int *) not released before assignment (z + aliases gnip): gip = z + null3.c:5:17: Storage gip becomes only +null3.c:55:3: Only storage gnip (type nip) not released before assignment: + gnip = aip + null3.c:53:3: Storage gnip becomes only +null3.c:60:14: Returned storage y not completely defined (*y is undefined): y +null3.c:60:16: Function returns with non-null global gip referencing null + storage + null3.c:53:9: Storage gip may become null +null3.c:65:14: Possibly null storage y returned as non-null: y + null3.c:24:12: Storage y may become null +null3.c:65:14: Returned storage y not completely defined (*y is undefined): y +null3.c:65:16: Function returns with non-null global gip referencing null + storage + null3.c:53:9: Storage gip may become null +null3.c: (in function f2) +null3.c:73:4: Dereference of possibly null pointer gnip: *gnip + null3.c:55:10: Storage gnip may become null + +Finished LCLint checking --- 16 code errors found, as expected + +null4.c: (in function g) +null4.c:43:3: Only storage p (type int *) not released before assignment: + p = malloc(24) + null4.c:3:28: Storage p becomes only + +Finished LCLint checking --- 1 code error found, as expected + +null5.c:5:29: Qualifier falsenull used with function returning char (should + return bool) +null5.c:6:29: Qualifier falsenull used with function having 2 arguments (should + have 1) +null5.c: (in function g2) +null5.c:26:15: Dereference of possibly null pointer y: *y + null5.c:18:25: Storage y may become null +null5.c: (in function g3) +null5.c:37:11: Dereference of null pointer y: *y + null5.c:30:25: Storage y becomes null + +Finished LCLint checking --- 4 code errors found, as expected + +null6.c:7:36: Function f1 declared with notnull parameter x of abstract type + mnull +null6.c: (in function f) +null6.c:11:11: Dereference of possibly null pointer x: *x +null6.c: (in function f6) +null6.c:68:10: Possibly null storage x returned as non-null: x + null6.c:61:31: Storage x may become null +null6.c: (in function f7) +null6.c:84:10: Possibly null storage x returned as non-null: x + null6.c:81:11: Storage x may become null + +Finished LCLint checking --- 4 code errors found, as expected + +null6.c:7:36: Function f1 declared with notnull parameter x of abstract type + mnull +null6.c: (in function f) +null6.c:11:11: Dereference of possibly null pointer x: *x +null6.c: (in function f6) +null6.c:68:10: Possibly null storage x returned as non-null: x + null6.c:61:31: Storage x may become null +null6.c: (in function f7) +null6.c:84:10: Possibly null storage x returned as non-null: x + null6.c:81:11: Storage x may become null -Finished LCLint checking --- 7 code errors found, expected 14 +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/observer.out b/test/observer.out index d6c6a15..cc38d96 100644 --- a/test/observer.out +++ b/test/observer.out @@ -1,7 +1,57 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +observer.c: (in function stx_name) +observer.c:9:10: Function returns reference to parameter x: (x->name) +observer.c:9:10: Return value exposes rep of stx: (x->name) +observer.c:9:20: Released storage x->name reachable from parameter at return + point + observer.c:9:10: Storage x->name is released +observer.c: (in function f) +observer.c:33:3: Suspect modification of observer s: *s = 'x' +observer.c:34:9: Function call may modify observer s: s + observer.c:32:7: Storage s becomes observer +observer.c:34:9: Observer storage s passed as only param: free (s) + observer.c:32:7: Storage s becomes observer +observer.c:38:9: Exposed storage s passed as only param: free (s) + observer.c:36:3: Storage s becomes exposed +observer.c:41:10: Observer storage *s reachable from unqualified return value +observer.c:41:10: Observer storage s returned without qualification: s + observer.c:40:7: Storage s becomes observer + +Finished LCLint checking --- 9 code errors found, as expected + +observer.c: (in function stx_name) +observer.c:9:10: Function returns reference to parameter x: (x->name) +observer.c:9:20: Released storage x->name reachable from parameter at return + point + observer.c:9:10: Storage x->name is released +observer.c: (in function f) +observer.c:33:3: Suspect modification of observer s: *s = 'x' +observer.c:34:9: Function call may modify observer s: s + observer.c:32:7: Storage s becomes observer +observer.c:34:9: Observer storage s passed as only param: free (s) + observer.c:32:7: Storage s becomes observer +observer.c:38:9: Exposed storage s passed as only param: free (s) + observer.c:36:3: Storage s becomes exposed +observer.c:41:10: Observer storage *s reachable from unqualified return value +observer.c:41:10: Observer storage s returned without qualification: s + observer.c:40:7: Storage s becomes observer + +Finished LCLint checking --- 8 code errors found, as expected + +observer.c: (in function stx_name) +observer.c:9:20: Released storage x->name reachable from parameter at return + point + observer.c:9:10: Storage x->name is released +observer.c: (in function f) +observer.c:33:3: Suspect modification of observer s: *s = 'x' +observer.c:34:9: Function call may modify observer s: s + observer.c:32:7: Storage s becomes observer +observer.c:34:9: Observer storage s passed as only param: free (s) + observer.c:32:7: Storage s becomes observer +observer.c:38:9: Exposed storage s passed as only param: free (s) + observer.c:36:3: Storage s becomes exposed +observer.c:41:10: Observer storage *s reachable from unqualified return value +observer.c:41:10: Observer storage s returned without qualification: s + observer.c:40:7: Storage s becomes observer + +Finished LCLint checking --- 7 code errors found, as expected diff --git a/test/oldstyle.out b/test/oldstyle.out index d6c6a15..6f1bbde 100644 --- a/test/oldstyle.out +++ b/test/oldstyle.out @@ -1,7 +1,10 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +oldstyle.c: (in function f1) +oldstyle.c:5:8: Dereference of non-pointer (int): *y +oldstyle.c:10:5: Function f2 declared with 1 arg, specified with 2 + oldstyle.lcl:2: Specification of f2 +oldstyle.c:15:12: Parameter 2, y, of function f3 has inconsistent type: + declared char, specified char * + oldstyle.lcl:4:1: Specification of y: char * + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/outglob.out b/test/outglob.out index d6c6a15..2d60d5b 100644 --- a/test/outglob.out +++ b/test/outglob.out @@ -1,7 +1,20 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +outglob.c: (in function g) +outglob.c:5:20: Undef global x3 used before definition +outglob.c: (in function f) +outglob.c:15:14: Undef global x1 used before definition +outglob.c:15:17: Function returns with global x2 undefined + outglob.lcl:3: Storage x2 becomes undefined +outglob.c:15:17: Function returns with global x3 undefined + outglob.lcl:3: Storage x3 becomes undefined +outglob.c:21:10: Undef global x1 used before definition +outglob.c:22:10: Global x2 used by function undefined before call: g +outglob.c:27:10: Undef global x3 used before definition +outglob.c:37:14: Function returns with global x3 undefined + outglob.lcl:3: Storage x3 becomes undefined +outglob.c:41:13: Function returns with global x2 undefined + outglob.lcl:3: Storage x2 becomes undefined +outglob.c:41:13: Function returns with global x3 undefined + outglob.lcl:3: Storage x3 becomes undefined + +Finished LCLint checking --- 10 code errors found, as expected diff --git a/test/outparam.out b/test/outparam.out index d6c6a15..83705a7 100644 --- a/test/outparam.out +++ b/test/outparam.out @@ -1,7 +1,20 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +outparam.c: (in function h) +outparam.c:8:3: Variable u1 used before definition +outparam.c:12:7: Field s->a used before definition +outparam.c: (in function f) +outparam.c:21:7: Value *a used before definition +outparam.c: (in function g) +outparam.c:37:5: Unallocated storage c passed as out parameter to f: c +outparam.c:37:8: Variable b used before definition +outparam.c:39:5: Unallocated storage d passed as out parameter to f: d +outparam.c:41:7: Variable t used before definition +outparam.c:42:7: Variable t2 used before definition +outparam.c:42:3: Assignment of int to st: s = t2->a +outparam.c:44:3: Variable t3 used before definition +outparam.c:47:5: Arrow access from possibly null pointer t4: t4->a + outparam.c:46:8: Storage t4 may become null +outparam.c:48:13: Fresh storage t4 not released before return + outparam.c:46:3: Fresh storage t4 allocated + +Finished LCLint checking --- 12 code errors found, as expected diff --git a/test/preds.out b/test/preds.out index 7692926..39770b2 100644 --- a/test/preds.out +++ b/test/preds.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. preds.c: (in function f) preds.c:10:7: Test expression for if not bool, type int: *p Test expression type is not boolean or int. (-predboolint will suppress @@ -26,8 +24,6 @@ preds.c:35:7: Test expression for if not bool, type char: c Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. preds.c: (in function f) preds.c:20:7: Test expression for if is assignment expression: b1 = b2 The condition test is an assignment expression. Probably, you mean to use == @@ -37,12 +33,6 @@ preds.c:20:7: Test expression for if is assignment expression: b1 = b2 Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -bool.h:11:25: Constant exported, but not specified: FALSE - A constant is exported, but not specified. (-exportconst will suppress - message) -bool.h:16:25: Constant exported, but not specified: TRUE preds.c: (in function f) preds.c:5:8: Operand of ! is non-boolean (int *): !p The operand of ! operator is a pointer. (+ptrnegate will suppress message) @@ -76,4 +66,4 @@ bool.h:30:13: Function bool_equal declared but not used preds.c:3:5: Function f declared but not used preds.c:41:1: Definition of f -Finished LCLint checking --- 14 code errors found, expected 12 +Finished LCLint checking --- 12 code errors found, as expected diff --git a/test/prefixes.out b/test/prefixes.out index 794b392..ccc63c5 100644 --- a/test/prefixes.out +++ b/test/prefixes.out @@ -1,17 +1,161 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. prefixes.c:20: Parameterized macro has no prototype or specification: mf prefixes.c: (in macro mf) prefixes.c:20:37: Variable y name is not consistent with macro variable namespace prefix "m_" prefixes.c:20:37: Variable y declared but not used prefixes.c:20:26: Variable m_x declared but not used -prefixes.c:20:50: Unrecognized identifier in macro definition: FALSE -Finished LCLint checking --- 5 code errors found, expected 4 +Finished LCLint checking --- 4 code errors found, as expected + +prefixes.c:2:13: Datatype QINT name is not consistent with user-defined type + namespace prefix "T" +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "T" + +Finished LCLint checking --- 2 code errors found, as expected + +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "^" + +Finished LCLint checking --- 1 code error found, as expected + +prefixes.c:1:13: Datatype Tin_ty name is not consistent with user-defined type + namespace prefix "^*" +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "^*" + +Finished LCLint checking --- 2 code errors found, as expected + +prefixes.c:2:13: Datatype QINT name is not consistent with user-defined type + namespace prefix "^%*" +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "^%*" + +Finished LCLint checking --- 2 code errors found, as expected + +prefixes.c:1:13: Datatype Tin_ty name is not consistent with user-defined type + namespace prefix "^~*" +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "^~*" + +Finished LCLint checking --- 2 code errors found, as expected + +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "^" +prefixes.c:6:12: Variable FSint name is not a user-defined type (it is a file + static), but matches the user-defined type namespace prefix "^" +prefixes.c:7:12: Variable TYint name is not a user-defined type (it is a file + static), but matches the user-defined type namespace prefix "^" +prefixes.c:8:12: Variable V3int name is not a user-defined type (it is a file + static), but matches the user-defined type namespace prefix "^" +prefixes.c:10:12: Variable Xqmxt name is not a user-defined type (it is a file + static), but matches the user-defined type namespace prefix "^" +prefixes.c:11:12: Variable XqmXt name is not a user-defined type (it is a file + static), but matches the user-defined type namespace prefix "^" +prefixes.c:14:12: Variable Gint name is not a user-defined type (it is a + external), but matches the user-defined type namespace prefix "^" + +Finished LCLint checking --- 7 code errors found, as expected + +prefixes.c:8:12: Variable V3int name is not consistent with file static + namespace prefix "^^" +prefixes.c:9:12: Variable sint name is not consistent with file static + namespace prefix "^^" +prefixes.c:10:12: Variable Xqmxt name is not consistent with file static + namespace prefix "^^" +prefixes.c:11:12: Variable XqmXt name is not consistent with file static + namespace prefix "^^" + +Finished LCLint checking --- 4 code errors found, as expected + +prefixes.c:6:12: Variable FSint name is not consistent with file static + namespace prefix "^#" +prefixes.c:7:12: Variable TYint name is not consistent with file static + namespace prefix "^#" +prefixes.c:9:12: Variable sint name is not consistent with file static + namespace prefix "^#" +prefixes.c:10:12: Variable Xqmxt name is not consistent with file static + namespace prefix "^#" +prefixes.c:11:12: Variable XqmXt name is not consistent with file static + namespace prefix "^#" + +Finished LCLint checking --- 5 code errors found, as expected + +prefixes.c:6:12: Variable FSint name is not consistent with file static + namespace prefix "^?&x" +prefixes.c:7:12: Variable TYint name is not consistent with file static + namespace prefix "^?&x" +prefixes.c:8:12: Variable V3int name is not consistent with file static + namespace prefix "^?&x" +prefixes.c:9:12: Variable sint name is not consistent with file static + namespace prefix "^?&x" +prefixes.c:11:12: Variable XqmXt name is not consistent with file static + namespace prefix "^?&x" + +Finished LCLint checking --- 5 code errors found, as expected + +prefixes.c:15:12: Variable aGb_Xint name is not consistent with global variable + namespace prefix "G" + +Finished LCLint checking --- 1 code error found, as expected + +prefixes.c:14:12: Variable Gint name is not consistent with global variable + namespace prefix "&G?_^" + +Finished LCLint checking --- 1 code error found, as expected + +prefixes.c:1:13: Datatype Tin_ty name is not consistent with external namespace + prefix "G" +prefixes.c:2:13: Datatype QINT name is not consistent with external namespace + prefix "G" +prefixes.c:3:13: Datatype tint name is not consistent with external namespace + prefix "G" +prefixes.c:15:12: Variable aGb_Xint name is not consistent with external + namespace prefix "G" +prefixes.c:18:12: Function g name is not consistent with external namespace + prefix "G" + +Finished LCLint checking --- 5 code errors found, as expected + +prefixes.c:2:13: Datatype QINT name is not consistent with user-defined type + namespace prefix "T" +prefixes.c:3:13: Datatype tint name is not consistent with user-defined type + namespace prefix "T" +prefixes.c:15:12: Variable aGb_Xint name is not consistent with external + namespace prefix "G" +prefixes.c:18:12: Function g name is not consistent with external namespace + prefix "G" + +Finished LCLint checking --- 4 code errors found, as expected + +prefixes.c:20: Expanded macro mf name is not a local variable (it is a + unchecked macro), but matches the local variable namespace prefix "?*" +prefixes.c:1:13: Datatype Tin_ty name is not a local variable (it is a + external), but matches the local variable namespace prefix "?*" +prefixes.c:2:13: Datatype QINT name is not a local variable (it is a external), + but matches the local variable namespace prefix "?*" +prefixes.c:3:13: Datatype tint name is not a local variable (it is a external), + but matches the local variable namespace prefix "?*" +prefixes.c:6:12: Variable FSint name is not a local variable (it is a file + static), but matches the local variable namespace prefix "?*" +prefixes.c:7:12: Variable TYint name is not a local variable (it is a file + static), but matches the local variable namespace prefix "?*" +prefixes.c:8:12: Variable V3int name is not a local variable (it is a file + static), but matches the local variable namespace prefix "?*" +prefixes.c:9:12: Variable sint name is not a local variable (it is a file + static), but matches the local variable namespace prefix "?*" +prefixes.c:10:12: Variable Xqmxt name is not a local variable (it is a file + static), but matches the local variable namespace prefix "?*" +prefixes.c:11:12: Variable XqmXt name is not a local variable (it is a file + static), but matches the local variable namespace prefix "?*" +prefixes.c:14:12: Variable Gint name is not a local variable (it is a + external), but matches the local variable namespace prefix "?*" +prefixes.c:15:12: Variable aGb_Xint name is not a local variable (it is a + external), but matches the local variable namespace prefix "?*" +prefixes.c:18:12: Function g name is not a local variable (it is a external), + but matches the local variable namespace prefix "?*" + +Finished LCLint checking --- 13 code errors found, as expected diff --git a/test/printflike.out b/test/printflike.out index 28030ac..8527939 100644 --- a/test/printflike.out +++ b/test/printflike.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. printflike.c:2:5: Function mprint is marked printflike, but has no elipsis parameter printflike.c:5:5: Function kprint is marked printflike, but has no elipsis @@ -18,8 +16,6 @@ printflike.c:17:5: Function qxprint is marked messagelike, but the argument Finished LCLint checking --- 6 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. printflike.c:2:5: Function mprint is marked printflike, but has no elipsis parameter printflike.c:5:5: Function kprint is marked printflike, but has no elipsis diff --git a/test/rc.out b/test/rc.out index 5897d1d..feac499 100644 --- a/test/rc.out +++ b/test/rc.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. rc.c: (in function f) rc.c:3:10: Observer storage returned without qualification: "a flag\"wicked cool" @@ -8,16 +6,12 @@ rc.c:3:10: Observer storage returned without qualification: Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. rc.c: (in function f) rc.c:3:10: Return value type int does not match declared type char *: 12 Finished LCLint checking --- 1 code error found, as expected rc2.lclintrc:1:18: Warning: setting +boolint redundant with current value -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. rc.c: (in function f) rc.c:3:10: Observer storage returned without qualification: "a silly\"flag\"\\" rc.c:3:10: Storage becomes observer @@ -25,8 +19,6 @@ rc.c:3:10: Observer storage returned without qualification: "a silly\"flag\"\\" Finished LCLint checking --- 1 code error found, as expected rc2.lclintrc:1:18: Warning: setting +boolint redundant with current value -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. rc.c: (in function f) rc.c:3:10: Unrecognized identifier: MYSTERY @@ -37,8 +29,6 @@ rc3.lclintrc:2:1: Bad flag syntax (+ or - expected, + is assumed): A flag is not recognized or used in an incorrect way (-badflag will suppress message) rc3.lclintrc:5:24: Flag dump must be followed by an argument -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. rc.c: (in function f) rc.c:3:10: Unrecognized identifier: MYSTERY diff --git a/test/refcounts.out b/test/refcounts.out index df6d72d..4575ec7 100644 --- a/test/refcounts.out +++ b/test/refcounts.out @@ -1,5 +1,23 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -refcounts.c:1:52: Old style declaration uses unlisted parameter: smalloc -*** Cannot continue. +refcounts.c: (in function rp_release) +refcounts.c:18:13: Reference counted storage passed as only param: free (x) +refcounts.c: (in function rp_temp) +refcounts.c:24:10: New reference returned as temp reference: rp_create2() +refcounts.c: (in function rp_f) +refcounts.c:32:3: Kill reference parameter r2 (type rp) not released before + assignment: r2 = rp_temp() + refcounts.c:27:50: Storage r2 becomes newref +refcounts.c: (in function rp_ref) +refcounts.c:48:10: Reference counted storage returned without modifying + reference count: x +refcounts.c: (in function rp_waste) +refcounts.c:63:13: New reference z2 not released before return + refcounts.c:60:23: Storage z2 becomes newref +refcounts.c: (in function rp_waste2) +refcounts.c:71:3: New reference z2 (type rp) not released before assignment: + z2 = rp_ref(z1) + refcounts.c:69:23: Storage z2 becomes newref +refcounts.c:72:13: New reference z2 not released before return + refcounts.c:71:3: Storage z2 becomes newref + +Finished LCLint checking --- 7 code errors found, as expected diff --git a/test/release.out b/test/release.out index c3510bf..026e363 100644 --- a/test/release.out +++ b/test/release.out @@ -1,8 +1,6 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. release.c: (in function f) -release.c:3:12: Unrecognized identifier: NULL -release.c:8:17: Unrecognized identifier: malloc +release.c:25:12: Owned storage z not released before return + release.c:22:7: Storage z becomes owned -Finished LCLint checking --- 2 code errors found, expected 1 +Finished LCLint checking --- 1 code error found, as expected diff --git a/test/repexpose.out b/test/repexpose.out index d6c6a15..73cc349 100644 --- a/test/repexpose.out +++ b/test/repexpose.out @@ -1,7 +1,124 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +repexpose.c: (in function abst_create) +repexpose.c:8:4: Arrow access from possibly null pointer a: a->name + repexpose.c:5:12: Storage a may become null +repexpose.c:13:3: Possible undocumented modification of p->parent through alias + a->parent: a->parent = b->parent +repexpose.c:16:3: Unqualified storage *globstring assigned to implicitly only: + a->name = *globstring +repexpose.c:17:3: Kept storage *globstring assigned to implicitly only: + b->name = *globstring + repexpose.c:16:3: Storage *globstring becomes kept +repexpose.c:19:10: Storage a->name reachable from return value is kept (should + be implicitly only) + repexpose.c:17:3: Storage a->name becomes kept +repexpose.c:19:10: Returned storage *a contains 1 undefined field: im +repexpose.c:19:12: Storage *globstring reachable from global is kept (should be + unqualified) + repexpose.c:16:3: Storage *globstring becomes kept +repexpose.c: (in function abst_name) +repexpose.c:26:18: Released storage a->name reachable from parameter at return + point + repexpose.c:26:10: Storage a->name is released +repexpose.c: (in function abst_parent) +repexpose.c:45:15: Dependent storage b->parent returned as only: b->parent +repexpose.c:45:25: Only storage a not released before return + repexpose.c:40:24: Storage a becomes only +repexpose.c: (in function immut_name) +repexpose.c:51:10: Only storage im->name returned as dependent: (im->name) +repexpose.c: (in function abst_setIm) +repexpose.c:57:3: Undocumented modification of a->im: a->im = im + +Finished LCLint checking --- 12 code errors found, as expected + +repexpose.c: (in function abst_create) +repexpose.c:8:4: Arrow access from possibly null pointer a: a->name + repexpose.c:5:12: Storage a may become null +repexpose.c:13:3: Possible undocumented modification of p->parent through alias + a->parent: a->parent = b->parent +repexpose.c:16:3: Unqualified storage *globstring assigned to implicitly only: + a->name = *globstring +repexpose.c:17:3: Kept storage *globstring assigned to implicitly only: + b->name = *globstring + repexpose.c:16:3: Storage *globstring becomes kept +repexpose.c:19:10: Storage a->name reachable from return value is kept (should + be implicitly only) + repexpose.c:17:3: Storage a->name becomes kept +repexpose.c:19:10: Returned storage *a contains 1 undefined field: im +repexpose.c:19:12: Storage *globstring reachable from global is kept (should be + unqualified) + repexpose.c:16:3: Storage *globstring becomes kept +repexpose.c: (in function abst_name) +repexpose.c:26:10: Function returns reference to parameter a: a->name +repexpose.c:26:18: Released storage a->name reachable from parameter at return + point + repexpose.c:26:10: Storage a->name is released +repexpose.c: (in function abst_aval) +repexpose.c:37:10: Function returns reference to parameter a: (&(a->val)) +repexpose.c: (in function abst_parent) +repexpose.c:45:15: Dependent storage b->parent returned as only: b->parent +repexpose.c:45:25: Only storage a not released before return + repexpose.c:40:24: Storage a becomes only +repexpose.c: (in function immut_name) +repexpose.c:51:10: Only storage im->name returned as dependent: (im->name) +repexpose.c:51:10: Function returns reference to parameter im: (im->name) +repexpose.c: (in function abst_setIm) +repexpose.c:57:3: Undocumented modification of a->im: a->im = im + +Finished LCLint checking --- 15 code errors found, as expected + +repexpose.c: (in function abst_create) +repexpose.c:8:4: Arrow access from possibly null pointer a: a->name + repexpose.c:5:12: Storage a may become null +repexpose.c:10:3: Assignment of mutable parameter p to component of abstract + type abst exposes rep: a->parent = p +repexpose.c:11:3: Assignment of mutable parameter p (through alias b) to + component of abstract type abst exposes rep: a->parent = b +repexpose.c:12:3: Assignment of mutable component of parameter p to component + of abstract type abst exposes rep: a->parent = p->parent +repexpose.c:13:3: Possible undocumented modification of p->parent through alias + a->parent: a->parent = b->parent +repexpose.c:13:3: Assignment of mutable component of parameter p (through alias + b->parent) to component of abstract type abst exposes rep: + a->parent = b->parent +repexpose.c:16:3: Assignment of global globstring to component of abstract type + abst exposes rep: a->name = *globstring +repexpose.c:16:3: Unqualified storage *globstring assigned to implicitly only: + a->name = *globstring +repexpose.c:17:3: Assignment of global globstring to component of abstract type + abst exposes rep: b->name = *globstring +repexpose.c:17:3: Kept storage *globstring assigned to implicitly only: + b->name = *globstring + repexpose.c:16:3: Storage *globstring becomes kept +repexpose.c:19:10: Storage a->name reachable from return value is kept (should + be implicitly only) + repexpose.c:17:3: Storage a->name becomes kept +repexpose.c:19:10: Returned storage *a contains 1 undefined field: im +repexpose.c:19:12: Storage *globstring reachable from global is kept (should be + unqualified) + repexpose.c:16:3: Storage *globstring becomes kept +repexpose.c: (in function abst_name) +repexpose.c:26:10: Function returns reference to parameter a: a->name +repexpose.c:26:10: Return value exposes rep of abst: a->name +repexpose.c:26:18: Released storage a->name reachable from parameter at return + point + repexpose.c:26:10: Storage a->name is released +repexpose.c: (in function abst_aval) +repexpose.c:37:10: Function returns reference to parameter a: (&(a->val)) +repexpose.c:37:10: Return value exposes rep of abst: (&(a->val)) +repexpose.c: (in function abst_parent) +repexpose.c:45:15: Dependent storage b->parent returned as only: b->parent +repexpose.c:45:15: Return value exposes rep of abst: b->parent +repexpose.c:45:15: Return value may expose rep of abst through alias a: + b->parent +repexpose.c:45:25: Only storage a not released before return + repexpose.c:40:24: Storage a becomes only +repexpose.c: (in function immut_name) +repexpose.c:51:10: Only storage im->name returned as dependent: (im->name) +repexpose.c:51:10: Function returns reference to parameter im: (im->name) +repexpose.c:51:10: Return value exposes rep of immut: (im->name) +repexpose.c: (in function abst_setIm) +repexpose.c:57:3: Undocumented modification of a->im: a->im = im +repexpose.lh:6:16: Variable globstring declared but not defined + +Finished LCLint checking --- 27 code errors found, as expected diff --git a/test/sharing.out b/test/sharing.out index f8da8b5..e963e4c 100644 --- a/test/sharing.out +++ b/test/sharing.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. sharing1.c: (in function f) sharing1.c:12:12: Only storage x not released before return sharing1.c:8:24: Storage x becomes only @@ -19,22 +17,138 @@ sharing1.c:29:3: Only storage zonly (type int *) not released before assignment: zonly = x sharing1.c:6:19: Storage zonly becomes only sharing1.c: (in function g) -sharing1.c:35:12: Unrecognized identifier: malloc sharing1.c:41:7: Implicitly temp storage imp passed as only param: f3 (imp) sharing1.c:42:4: Variable imp used after being released sharing1.c:41:7: Storage imp released sharing1.c:44:12: Immediate address &x passed as only param: f (&x, ...) sharing1.c:44:12: Parameter 1 (&x) to function f is declared only but is aliased by parameter 2 (&x) +sharing1.c:48:14: Possibly null storage y3 passed as non-null param: + f2 (y3, ...) + sharing1.c:37:13: Storage y3 may become null +sharing1.c:48:14: Passed storage y3 not completely defined (*y3 is undefined): + f2 (y3, ...) sharing1.c:48:18: Parameter 2 (y3) to function f2 is declared only but is aliased by parameter 1 (y3) sharing1.c:50:4: Variable y3 used after being released sharing1.c:48:18: Storage y3 released +sharing1.c:51:12: Possibly null storage y passed as non-null param: f (y, ...) + sharing1.c:35:12: Storage y may become null +sharing1.c:51:12: Passed storage y not completely defined (*y is undefined): + f (y, ...) sharing1.c:52:12: Shared storage globshared1 passed as only param: f (globshared1, ...) sharing1.c:4:19: Storage globshared1 becomes shared -sharing1.c:56:3: Unrecognized identifier: free +sharing1.c:56:9: Shared storage globshared2 passed as only param: + free (globshared2) + sharing1.c:5:19: Storage globshared2 becomes shared sharing1.c:59:11: Variable y used after being released sharing1.c:51:12: Storage y released +sharing1.c:59:13: Fresh storage y2 not released before return + sharing1.c:36:33: Fresh storage y2 allocated +sharing1.c:59:13: Function returns with global globonly referencing released + storage + sharing1.c:57:9: Storage globonly is released -Finished LCLint checking --- 16 code errors found, expected 21 +Finished LCLint checking --- 21 code errors found, as expected + +sharing3.c: (in function string_copy) +sharing3.c:17:10: Implicitly temp storage s returned as only: s +sharing3.c: (in function string_free1) +sharing3.c:32:9: Implicitly temp storage s passed as only param: free (s) +sharing3.c: (in function string_free3) +sharing3.c:45:2: Fresh storage t not released before return + sharing3.c:42:29: Fresh storage t allocated + +Finished LCLint checking --- 3 code errors found, as expected + +sharing4.c: (in function f) +sharing4.c:18:3: Only storage globonly1 (type char *) not released before + assignment: globonly1 = only1 + sharing4.c:1:20: Storage globonly1 becomes only +sharing4.c:23:3: Only storage globonly4 (type char *) not released before + assignment: globonly4 = shared1 + sharing4.c:4:20: Storage globonly4 becomes only +sharing4.c:23:3: Shared storage shared1 assigned to only: globonly4 = shared1 + sharing4.c:14:26: Storage shared1 becomes shared +sharing4.c:27:3: Only storage globonly5 assigned to shared: + globshared1 = globonly5 + sharing4.c:5:20: Storage globonly5 becomes only +sharing4.c:30:3: Only storage globonly1 assigned to shared (local1 aliases + globonly1): globshared1 = local1 + sharing4.c:1:20: Storage globonly1 becomes only +sharing4.c:30:3: Kept storage only1 assigned to shared (local1 aliases only1): + globshared1 = local1 + sharing4.c:18:3: Storage only1 becomes kept +sharing4.c:32:3: Only storage assigned to shared: + globshared1 = string_copy(local1) +sharing4.c:34:3: Temp storage temp2 assigned to shared: globshared2 = temp2 + sharing4.c:13:37: Storage temp2 becomes temp +sharing4.c:35:3: Only storage globonly4 (type char *) not released before + assignment: globonly4 = temp1 + sharing4.c:4:20: Storage globonly4 becomes only +sharing4.c:35:3: Implicitly temp storage temp1 assigned to only: + globonly4 = temp1 +sharing4.c:38:9: Shared storage shared1 passed as only param: free (shared1) + sharing4.c:14:26: Storage shared1 becomes shared +sharing4.c:42:12: Only storage only3 not released before return + sharing4.c:12:72: Storage only3 becomes only +sharing4.c:42:12: Function returns with global globonly3 referencing released + storage + sharing4.c:21:9: Storage globonly3 is released + +Finished LCLint checking --- 13 code errors found, as expected + +sharing4.c: (in function f) +sharing4.c:18:3: Only storage globonly1 (type char *) not released before + assignment: globonly1 = only1 + sharing4.c:1:20: Storage globonly1 becomes only +sharing4.c:23:3: Only storage globonly4 (type char *) not released before + assignment: globonly4 = shared1 + sharing4.c:4:20: Storage globonly4 becomes only +sharing4.c:23:3: Shared storage shared1 assigned to only: globonly4 = shared1 + sharing4.c:14:26: Storage shared1 becomes shared +sharing4.c:27:3: Only storage globonly5 assigned to shared: + globshared1 = globonly5 + sharing4.c:5:20: Storage globonly5 becomes only +sharing4.c:30:3: Only storage globonly1 assigned to shared (local1 aliases + globonly1): globshared1 = local1 + sharing4.c:1:20: Storage globonly1 becomes only +sharing4.c:30:3: Kept storage only1 assigned to shared (local1 aliases only1): + globshared1 = local1 + sharing4.c:18:3: Storage only1 becomes kept +sharing4.c:32:3: Only storage assigned to shared: + globshared1 = string_copy(local1) +sharing4.c:34:3: Temp storage temp2 assigned to shared: globshared2 = temp2 + sharing4.c:13:37: Storage temp2 becomes temp +sharing4.c:35:3: Only storage globonly4 (type char *) not released before + assignment: globonly4 = temp1 + sharing4.c:4:20: Storage globonly4 becomes only +sharing4.c:38:9: Shared storage shared1 passed as only param: free (shared1) + sharing4.c:14:26: Storage shared1 becomes shared +sharing4.c:42:12: Only storage only3 not released before return + sharing4.c:12:72: Storage only3 becomes only +sharing4.c:42:12: Function returns with global globonly3 referencing released + storage + sharing4.c:21:9: Storage globonly3 is released + +Finished LCLint checking --- 12 code errors found, as expected + +sharing5.c: (in function f) +sharing5.c:13:4: Variable only1 used after being released + sharing5.c:12:9: Storage only1 released +sharing5.c:22:5: Clauses exit with local2 referencing local storage in true + branch, shared storage in false branch + sharing5.c:21:7: Storage local2 becomes shared +sharing5.c:24:9: Shared storage shared passed as only param (local2 aliases + shared): free (local2) + sharing5.c:5:27: Storage shared becomes shared +sharing5.c:27:4: Dereference of possibly null pointer localp: *localp + sharing5.c:26:12: Storage localp may become null +sharing5.c:32:3: Fresh storage localp (type char **) not released before + assignment: localp = &only3 + sharing5.c:26:3: Fresh storage localp allocated +sharing5.c:33:2: Only storage only3 not released before return + sharing5.c:4:73: Storage only3 becomes only + +Finished LCLint checking --- 6 code errors found, as expected diff --git a/test/specclauses.out b/test/specclauses.out index 2ada76e..f6b32c0 100644 --- a/test/specclauses.out +++ b/test/specclauses.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. specclauses.c: (in function f) specclauses.c:24:28: Only storage r.name (type char *) derived from variable declared in this scope is not released (memory leak) @@ -8,13 +6,80 @@ specclauses.c:28:24: Undefined storage r.name corresponds to storage listed in uses clause of called function: r specclauses.c:28:28: Only storage name not released before return specclauses.c:17:49: Storage name becomes only -specclauses.c:32:16: Unrecognized identifier: malloc specclauses.c:33:16: Allocated storage r.name corresponds to storage listed in defines clause of called function: &r specclauses.c:34:17: Only storage r.name (type char *) derived from variable declared in this scope is not released (memory leak) -specclauses.c:40:7: Unrecognized identifier: printf -specclauses.c:40:7: Field r.name used after being released +specclauses.c:40:23: Field r.name used after being released specclauses.c:39:17: Storage r.name released -Finished LCLint checking --- 8 code errors found, expected 6 +Finished LCLint checking --- 6 code errors found, as expected + +specclauses2.c:10:13: Allocates clauses includes r->year of non-dynamically + allocated type int +specclauses2.c: (in function allocYear) +specclauses2.c:14:2: Unallocated storage r->year corresponds to storage listed + in allocates clause +specclauses2.c: (in function setName1) +specclauses2.c:26:2: Undefined storage r->name corresponds to storage listed in + defines clause +specclauses2.c: (in function setName3) +specclauses2.c:37:2: Undefined storage r->name corresponds to storage listed in + sets clause + This sub-reference is undefined: *(r->name) +specclauses2.c: (in function setName4) +specclauses2.c:42:3: Implicitly only storage r->name (type char *) not released + before assignment: r->name = name +specclauses2.c: (in function allocName2) +specclauses2.c:54:2: Unallocated storage r->name corresponds to storage listed + in allocates clause +specclauses2.c: (in function freeName2) +specclauses2.c:65:2: Unreleased storage r.name corresponds to storage listed in + releases clause +specclauses2.c: (in function freeName4) +specclauses2.c:76:2: Unreleased storage r->name corresponds to storage listed + in releases clause + +Finished LCLint checking --- 8 code errors found, as expected + +specclauses3.c:7:6: Special clause accesses field of non-struct or union result + (int): *(result).name +specclauses3.c: (in function badResult) +specclauses3.c:12:10: Undefined storage ->name corresponds to storage + result->name listed in defines clause: NULL +specclauses3.c:12:10: Null storage returned as non-null: NULL +specclauses3.c: (in function createName2) +specclauses3.c:29:10: Undefined storage res->name corresponds to storage + result->name listed in defines clause: res +specclauses3.c:29:10: Possibly null storage res returned as non-null: res + specclauses3.c:28:16: Storage res may become null +specclauses3.c: (in function createName4) +specclauses3.c:55:10: Unallocated storage res->name corresponds to storage + result->name listed in allocates clause: res + +Finished LCLint checking --- 6 code errors found, as expected + +specclauses4.c: (in function usename) +specclauses4.c:13:4: Dereference of null pointer *name: **name + specclauses4.c:11:8: Storage *name becomes null +specclauses4.c: (in function callname) +specclauses4.c:27:12: Non-null storage *s corresponds to storage listed in + requires isnull clause of called function: s +specclauses4.c: (in function nullname2) +specclauses4.c:42:2: Non-null storage *name corresponds to storage listed in + ensures isnull clause + +Finished LCLint checking --- 3 code errors found, as expected + +specclauses5.c: (in function createrecord2) +specclauses5.c:31:10: Null storage r->name derivable from return value: r + specclauses5.c:30:14: Storage r->name becomes null +specclauses5.c: (in function newrecord2) +specclauses5.c:43:10: Non-observer storage r->name corresponds to storage + result->name listed in ensures observer clause: r +specclauses5.c: (in function createrecordx) +specclauses5.c:49:10: Observer storage r->name reachable from unqualified + return value + specclauses5.c:48:27: Storage r->name becomes observer + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/special.out b/test/special.out index d6c6a15..9bba758 100644 --- a/test/special.out +++ b/test/special.out @@ -1,7 +1,93 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +special.c: (in function f) +special.c:17:34: Variable c used before definition +special.c:19:31: Format argument 1 to printf (%d) expects int gets long int: li + special.c:19:17: Corresponding format code +special.c:20:46: Format argument 2 to printf (%d) expects int gets long int: li + special.c:20:21: Corresponding format code +special.c:20:50: Format argument 3 to printf (%hd) expects short int gets int: + i + special.c:20:25: Corresponding format code +special.c:27:19: Variable s used before definition +special.c:29:28: Format argument 1 to printf (%+14.3i) expects int gets char: c + special.c:29:24: Corresponding format code +special.c:29:3: Format string for printf has 1 arg, given 2 +special.c:30:38: Format argument 1 to fprintf (%+14.33i) expects int gets char: + c + special.c:30:34: Corresponding format code +special.c:30:3: Format string for fprintf has 1 arg, given 2 +special.c:31:25: Format argument 1 to printf (%d) expects int gets char: c + special.c:31:15: Corresponding format code +special.c:31:28: Format argument 2 to printf (%f) expects double gets int: i + special.c:31:18: Corresponding format code +special.c:31:3: No argument corresponding to printf format code 3 (%f): + "%% %d %f %f" + special.c:31:21: Corresponding format code +special.c:34:40: Format argument 1 to scanf (%d) expects int * gets int: i + special.c:34:36: Corresponding format code +special.c:37:54: Format argument 1 to fscanf (%d) expects int * gets int: i + special.c:37:44: Corresponding format code +special.c:37:57: Format argument 2 to fscanf (%c) expects char * gets char: c + special.c:37:47: Corresponding format code +special.c:37:60: Format argument 3 to fscanf (%s) expects char * gets char **: + &s + special.c:37:50: Corresponding format code +special.c:40:10: Undocumented modification of gi possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %23d %c %s", &gi, &gc, gs) +special.c:40:10: Undocumented modification of gc possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %23d %c %s", &gi, &gc, gs) +special.c:40:10: Undocumented modification of gs possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %23d %c %s", &gi, &gc, gs) +special.c:42:10: Undocumented modification of gs possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %*23d %*c %s", gs) + +Finished LCLint checking --- 20 code errors found, as expected + +special.c: (in function f) +special.c:17:34: Variable c used before definition +special.c:19:31: Format argument 1 to printf (%d) expects int gets long int: li + special.c:19:17: Corresponding format code +special.c:20:43: Format argument 1 to printf (%ld) expects long int gets int: i + special.c:20:18: Corresponding format code +special.c:20:46: Format argument 2 to printf (%d) expects int gets long int: li + special.c:20:21: Corresponding format code +special.c:20:50: Format argument 3 to printf (%hd) expects short int gets int: + i + special.c:20:25: Corresponding format code +special.c:20:60: Format argument 5 to printf (%d) expects int gets short int: + silly + special.c:20:32: Corresponding format code +special.c:27:19: Variable s used before definition +special.c:29:28: Format argument 1 to printf (%+14.3i) expects int gets char: c + special.c:29:24: Corresponding format code +special.c:29:3: Format string for printf has 1 arg, given 2 +special.c:30:38: Format argument 1 to fprintf (%+14.33i) expects int gets char: + c + special.c:30:34: Corresponding format code +special.c:30:3: Format string for fprintf has 1 arg, given 2 +special.c:31:25: Format argument 1 to printf (%d) expects int gets char: c + special.c:31:15: Corresponding format code +special.c:31:28: Format argument 2 to printf (%f) expects double gets int: i + special.c:31:18: Corresponding format code +special.c:31:3: No argument corresponding to printf format code 3 (%f): + "%% %d %f %f" + special.c:31:21: Corresponding format code +special.c:34:40: Format argument 1 to scanf (%d) expects int * gets int: i + special.c:34:36: Corresponding format code +special.c:37:54: Format argument 1 to fscanf (%d) expects int * gets int: i + special.c:37:44: Corresponding format code +special.c:37:57: Format argument 2 to fscanf (%c) expects char * gets char: c + special.c:37:47: Corresponding format code +special.c:37:60: Format argument 3 to fscanf (%s) expects char * gets char **: + &s + special.c:37:50: Corresponding format code +special.c:40:10: Undocumented modification of gi possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %23d %c %s", &gi, &gc, gs) +special.c:40:10: Undocumented modification of gc possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %23d %c %s", &gi, &gc, gs) +special.c:40:10: Undocumented modification of gs possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %23d %c %s", &gi, &gc, gs) +special.c:42:10: Undocumented modification of gs possible from call to fscanf: + fscanf(stdin, "hullo, welcome to %*23d %*c %s", gs) + +Finished LCLint checking --- 22 code errors found, as expected diff --git a/test/stack.out b/test/stack.out index 01f5440..c9f5661 100644 --- a/test/stack.out +++ b/test/stack.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. stack.c: (in function stack1) stack.c:10:2: Stack-allocated storage *x reachable from parameter x stack.c:9:3: Storage *x becomes stack @@ -13,7 +11,4 @@ stack.c:35:11: Stack-allocated storage sa reachable from return value: &sa[0] Finished LCLint checking --- 5 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found diff --git a/test/staticarray.out b/test/staticarray.out index e75d636..2a44323 100644 --- a/test/staticarray.out +++ b/test/staticarray.out @@ -1,8 +1,5 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. staticarray.c: (in function foo1) -staticarray.c:8:3: Unrecognized identifier: strcpy staticarray.c:9:10: Unqualified static storage buf returned as implicitly only: buf staticarray.c: (in function f) @@ -12,4 +9,4 @@ staticarray.c: (in function g) staticarray.c:27:10: Implicitly temp storage outstr returned as implicitly only: outstr -Finished LCLint checking --- 4 code errors found, expected 3 +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/strchr.out b/test/strchr.out index c319ac8..5a3bf3c 100644 --- a/test/strchr.out +++ b/test/strchr.out @@ -1,18 +1,7 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. strchr.c: (in function func) -strchr.c:5:7: Unrecognized identifier: strchr -strchr.c:6:3: Possible out-of-bounds store: - Unable to resolve constraint: - requires maxSet(strchr("dfdfedfd", 'e') @ strchr.c:5:7) >= 0 - needed to satisfy precondition: - requires maxSet(c @ strchr.c:6:4) >= 0 -strchr.c: (in function fixline) -strchr.c:15:5: Possible out-of-bounds store: - Unable to resolve constraint: - requires maxSet(strchr(line, '\n') @ strchr.c:13:13) >= 0 - needed to satisfy precondition: - requires maxSet(p @ strchr.c:15:6) >= 0 +strchr.c:6:4: Dereference of possibly null pointer c: *c + strchr.c:5:7: Storage c may become null +strchr.c:6:3: Suspect modification of observer c: *c = 'd' -Finished LCLint checking --- 3 code errors found, expected 2 +Finished LCLint checking --- 2 code errors found, as expected diff --git a/test/strings.out b/test/strings.out index 5622ec3..19b5d44 100644 --- a/test/strings.out +++ b/test/strings.out @@ -1,14 +1,23 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -strings.c: (in function f3) -strings.c:18:3: Unrecognized identifier: free -strings.c:19:2: Only storage x not released before return - strings.c:16:27: Storage x becomes only strings.c:21:6: Function main declared to return void, should return int strings.c: (in function main) strings.c:24:14: Function call may modify observer: "hullo" strings.c:25:7: Observer storage passed as only param: f3 ("hullo") strings.c:25:7: Storage becomes observer -Finished LCLint checking --- 5 code errors found, expected 3 +Finished LCLint checking --- 3 code errors found, as expected + +strings.c:21:6: Function main declared to return void, should return int + +Finished LCLint checking --- 1 code error found, as expected + +strings.c: (in function main) +strings.c:23:14: Call to unconstrained function f1 may modify observer: "hullo" + strings.c:23:14: Storage becomes observer +strings.c:24:14: Function call may modify observer: "hullo" +strings.c:25:7: Call to unconstrained function f3 may modify observer: "hullo" + strings.c:25:7: Storage becomes observer +strings.c:25:7: Observer storage passed as only param: f3 ("hullo") + strings.c:25:7: Storage becomes observer + +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/structassign.out b/test/structassign.out index 17fb12b..1543558 100644 --- a/test/structassign.out +++ b/test/structassign.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. structassign.c: (in function copyrecord) structassign.c:15:15: Released storage x.name reachable from parameter at return point @@ -14,12 +12,7 @@ structassign.c:28:12: Released storage x.name reachable from parameter at return point structassign.c:28:12: Storage x.name is released structassign.c: (in function main) -structassign.c:37:21: Unrecognized identifier: malloc -structassign.c:38:3: Unrecognized identifier: assert -structassign.c:38:21: Unrecognized identifier: NULL -structassign.c:39:3: Unrecognized identifier: strcpy -structassign.c:43:3: Unrecognized identifier: printf structassign.c:45:14: Only storage rc.name (type char *) derived from variable declared in this scope is not released (memory leak) -Finished LCLint checking --- 9 code errors found, expected 4 +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/tests2.2a.out b/test/tests2.2a.out index e69de29..1f957e8 100644 --- a/test/tests2.2a.out +++ b/test/tests2.2a.out @@ -0,0 +1,120 @@ + +erik.c: (in function main) +erik.c:6:4: Return value (type int) ignored: scanf("%lf %f", ... + +Finished LCLint checking --- 1 code error found, as expected + +boolcomp.c: (in function f) +boolcomp.c:5:7: Use of == with bool variables (risks inconsistency because of + multiple true values): a == b +boolcomp.c:9:13: Use of == with bool variables (risks inconsistency because of + multiple true values): a == b +boolcomp.c:11:6: Use of != with bool variables (risks inconsistency because of + multiple true values): a != b +boolcomp.c:16:6: Use of == with bool variables (risks inconsistency because of + multiple true values): b == TRUE +boolcomp.c:20:2: Path with no return in function declared to return int + +Finished LCLint checking --- 5 code errors found, as expected + +Finished LCLint checking --- no code errors found + +addassign.c: (in function hash) +addassign.c:7:7: Incompatible types for += (int, char): h += *name++ + +Finished LCLint checking --- 1 code error found, as expected + +toralf.c: (in function func1) +toralf.c:14:3: Incompatible types for += (char *, char): s += 'c' +toralf.c:15:3: Variable i1 used before definition +toralf.c:15:9: Variable f used before definition +toralf.c: (in function func2) +toralf.c:23:8: Variable i2 used before definition +toralf.c: (in function main) +toralf.c:28:10: Null storage passed as non-null param: func1 (NULL) + +Finished LCLint checking --- 5 code errors found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +arrayparam.c:1:12: Function parameter x is incomplete type (inner array must + have bounds): int [2] [] +arrayparam.c:11:12: Function parameter x is incomplete type (inner array must + have bounds): int [] [] +arrayparam.c:16:12: Function parameter x is incomplete type (inner array must + have bounds): int [] [] [2] +arrayparam.c:21:12: Function parameter x is incomplete type (inner array must + have bounds): int [2] [] [2] +arrayparam.c:26:12: Function parameter x declared as manifest array (size + constant is meaningless) + +Finished LCLint checking --- 5 code errors found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +obviousloop.c: (in function f) +obviousloop.c:14:3: Unreachable code: x = 12 +obviousloop.c: (in function f1) +obviousloop.c:36:2: Path with no return in function declared to return int +obviousloop.c: (in function f1b) +obviousloop.c:59:3: Unreachable code: x = 12 +obviousloop.c: (in function f2) +obviousloop.c:75:3: Unreachable code: x = 12 + +Finished LCLint checking --- 4 code errors found, as expected + +bitops.c: (in function f) +bitops.c:3:11: Left operand of & is not unsigned value (int): i1 & i2 +bitops.c:3:11: Variable x initialized to type unsigned int, expects int: + i1 & i2 +bitops.c:4:21: Right operand of & is not unsigned value (int): u1 & i2 +bitops.c:5:13: Left operand of & is not unsigned value (int): i1 & i2 +bitops.c:5:13: Variable s initialized to type unsigned int, expects short int: + i1 & i2 +bitops.c:6:14: Variable s2 initialized to type int, expects short int: i1 + i2 +bitops.c:9:7: Left operand of << is not unsigned value (int): i1 << 3 +bitops.c:14:7: Left operand of ^ is not unsigned value (int): i1 ^ u1 +bitops.c:15:12: Right operand of ^ is not unsigned value (int): u1 ^ i1 +bitops.c:5:9: Variable s declared but not used +bitops.c:6:9: Variable s2 declared but not used + +Finished LCLint checking --- 11 code errors found, as expected + +bitops.c: (in function f) +bitops.c:5:13: Variable s initialized to type int, expects short int: i1 & i2 +bitops.c:6:14: Variable s2 initialized to type int, expects short int: i1 + i2 +bitops.c:9:7: Left operand of << is not unsigned value (int): i1 << 3 +bitops.c:5:9: Variable s declared but not used +bitops.c:6:9: Variable s2 declared but not used + +Finished LCLint checking --- 5 code errors found, as expected + +isalpha.c: (in function f) +isalpha.c:5:19: Function isalpha expects arg 1 to be int gets char: c + +Finished LCLint checking --- 1 code error found, as expected + +isalpha.c: (in function f) +isalpha.c:5:19: Function isalpha expects arg 1 to be int gets char: c + +Finished LCLint checking --- 1 code error found, as expected + +Finished LCLint checking --- no code errors found + +popik.c:7:3: Variable has unknown (implicitly int) type: dummy[0] +popik.c:7:3: Variable has unknown (implicitly int) type: dummy[1] +popik.c:7:3: Variable has unknown (implicitly int) type: dummy[2] +popik.c:7:3: Variable has unknown (implicitly int) type: dummy[3] +popik.c:24:3: Variable has unknown (implicitly int) type: dummy3[0] +popik.c:24:3: Variable has unknown (implicitly int) type: dummy3[1] +popik.c:24:3: Variable has unknown (implicitly int) type: dummy3[2] +popik.c:24:3: Variable has unknown (implicitly int) type: dummy3[3] +popik.c:1:14: File static variable dummy declared but not used +popik.c:10:24: File static variable dummy2 declared but not used +popik.c:18:14: File static variable dummy3 declared but not used + +Finished LCLint checking --- 11 code errors found, as expected diff --git a/test/tests2.4.out b/test/tests2.4.out index e28644b..9221f5e 100644 --- a/test/tests2.4.out +++ b/test/tests2.4.out @@ -1,18 +1,11 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. enumtest.c:1:9: Variable exported but not used outside enumtest: sig_func enumtest.c:2:10: Variable exported but not used outside enumtest: sig_func1 Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. duffs.c: (in function send) duffs.c:7:8: Fall through case (no preceding break) duffs.c:8:8: Fall through case (no preceding break) @@ -24,24 +17,111 @@ duffs.c:13:8: Fall through case (no preceding break) Finished LCLint checking --- 7 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. bug2.c: (in function main) -bug2.c:5:5: Unrecognized identifier: printf bug2.c:6:8: Fall through case (no preceding break) bug2.c:10:10: Fall through case (no preceding break) bug2.c:16:8: Fall through case (no preceding break) bug2.c:5:5: Statement after switch is not a case: printf("here 1") bug2.c:20:2: Path with no return in function declared to return int -Finished LCLint checking --- 6 code errors found, expected 5 +Finished LCLint checking --- 5 code errors found, as expected + +bug3.c: (in function main) +bug3.c:8:8: Fall through case (no preceding break) +bug3.c:12:21: Variable j used before definition +bug3.c:13:2: Path with no return in function declared to return int + +Finished LCLint checking --- 3 code errors found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +hexconstants.c: (in function f) +hexconstants.c:5:10: Return value type unsigned int does not match declared + type int: m1 + m2 + +Finished LCLint checking --- 1 code error found, as expected + +hexconstants.c: (in function f) +hexconstants.c:2:21: Variable m1 initialized to type int, expects unsigned int: + 0xFF +hexconstants.c:3:21: Variable m2 initialized to type int, expects unsigned int: + 0142 +hexconstants.c:5:10: Return value type unsigned int does not match declared + type int: m1 + m2 +hexconstants.c:1:5: Function f exported but not declared in header file + hexconstants.c:6:1: Definition of f + +Finished LCLint checking --- 4 code errors found, as expected + +innercomment.c:1:17: Comment starts inside comment +innercomment.c:16:3: Comment starts inside comment + +Finished LCLint checking --- 2 code errors found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +offsetof.c: (in function f) +offsetof.c:10:3: Assignment of size_t to int: m = offsetof(S,u) +offsetof.c:12:26: Deep field k in offsetof is not the name of a field of struct + { int m; }: offsetof(S,u.s.k) + +Finished LCLint checking --- 2 code errors found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +error.c:5:9: Variable x initialized to type char, expects int: 'a' + +Finished LCLint checking --- 1 code error found, as expected + +ulrich.c: (in function utl_calloc) +ulrich.c:14:13: Possibly null storage newblock returned as non-null: newblock + ulrich.c:12:16: Storage newblock may become null + +Finished LCLint checking --- 1 code error found, as expected + +cpptest.c: (in function test) +cpptest.c:2:11: Variable x initialized to type char, expects int: 'a' + +Finished LCLint checking --- 1 code error found, as expected + +longlong.c: (in function llf) +longlong.c:2:11: Variable m initialized to type long long, expects int: llx +longlong.c:3:3: Assignment of long long to int: m = 243LL +longlong.c:6:3: Assignment of long long to long int: lx = 5234LL +longlong.c:9:3: Assignment of long long to long int: lx = llx + +Finished LCLint checking --- 4 code errors found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +alignof.c: (in function f) +alignof.c:2:23: Variable m initialized to type size_t, expects int: alignof(x) +alignof.c:3:23: Variable n initialized to type size_t, expects int: + alignof((x)) + +Finished LCLint checking --- 2 code errors found, as expected + +Spec file not found: DBL_MANT_DIG=25.lcl +Command Line: Malformed option `-D' +Cannot open file: DBL_MANT_DIG=25.c +Cannot open file: source.c + +Finished LCLint checking --- no code processed diff --git a/test/tests2.5.out b/test/tests2.5.out index 76c7b44..4aba2d1 100644 --- a/test/tests2.5.out +++ b/test/tests2.5.out @@ -1,28 +1,53 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. boolt.c: (in function test) boolt.c:7:16: Function test expects arg 1 to be pan_bool_t gets int: 2 Finished LCLint checking --- 1 code error found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. uconstants.c: (in function f) uconstants.c:2:16: Variable x0 declared but not used uconstants.c:3:21: Variable x1 declared but not used Finished LCLint checking --- 2 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. hoof.c: (in function main) hoof.c:12:16: Function init_arr expects arg 2 to be long int * gets int *: &j -hoof.c:16:5: Unrecognized identifier: printf -Finished LCLint checking --- 2 code errors found, expected 1 +Finished LCLint checking --- 1 code error found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +booltest.c: (in function f) +booltest.c:9:12: Return value type int does not match declared type bool: i +booltest.c:8:7: Test expression for if not bool, type int: i + +Finished LCLint checking --- 2 code errors found, as expected + +Finished LCLint checking --- no code errors found + +booltest.c: (in function f) +booltest.c:9:12: Return value type int does not match declared type bool: i + +Finished LCLint checking --- 1 code error found, as expected + +Finished LCLint checking --- no code errors found + +Finished LCLint checking --- no code errors found + +immutable.c: (in function immutable_create) +immutable.c:7:6: Arrow access from possibly null pointer res: res->x + immutable.c:5:19: Storage res may become null +immutable.c:8:10: Fresh storage returned as unqualified (should be only): res + immutable.c:5:54: Fresh storage res allocated + +Finished LCLint checking --- 2 code errors found, as expected + +impabsmodule.c: (in function isTwo) +impabsmodule.c:10:7: Variable var used before definition +impabsmodule.c:10:12: Variable var2 used before definition + +Finished LCLint checking --- 2 code errors found, as expected diff --git a/test/tests2.5/newlint.lcd b/test/tests2.5/newlint.lcd index 6b51469..90f819f 100644 --- a/test/tests2.5/newlint.lcd +++ b/test/tests2.5/newlint.lcd @@ -21,11 +21,11 @@ 0 p16|-2 35 54 0 p17|-2 36 55 0 p18|-2 37 56 -1 t0|0& +1 t0|0 314 -1 1 t1|1& 1 t2|2& 1 t3|3& -1 t4|4& +1 t4|4 315 -1 1 t5|5& 1 t6|6& 1 t7|7& @@ -60,36 +60,1765 @@ 2 y17|17& 2 y18|18& -2 ?! -0 s7|& -0 s8|& -0 s9|& +0 a0|& +0 s10|& +0 s11|& +0 s12|& +0 s23|& +0 s24|& +0 s25|& +0 s26|-1 383 -1 +0 s27|& +0 a28|-1 401 -1 +3 C0.5/20|! +3 C0.68/2|! +3 C0.2/5|! +3 f0 (70|@7|$#,)! +3 f1 (70|@7|$#,)! +3 C0.5/3|! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 C0.2/5|! +3 f88 (73|$#,)! +3 C0.5/3|! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 C0.2/5|! +3 f105 (90|$#,)! +3 C0.5/3|! +3 f0 (107|$#,)! +3 f2 (107|$#,)! +3 f105 (107|$#,)! +3 C0.4/5|! +3 f0 (107|$#,)! +3 f4 (107|$#,)! +3 f111 (107|$#,)! +3 f0 (107|$#,)! +3 f4 (107|$#,)! +3 f111 (107|$#,)! +3 Slconv{23|@1|0@0@3&#decimal_point,23|@1|0@0@3&#thousands_sep,23|@1|0@0@3&#grouping,23|@1|0@0@3&#int_curr_symbol,23|@1|0@0@3&#currency_symbol,23|@1|0@0@3&#mon_decimal_point,23|@1|0@0@3&#mon_thousands_sep,23|@1|0@0@3&#mon_grouping,23|@1|0@0@3&#positive_sign,23|@1|0@0@3&#negative_sign,4|@1|$#int_frac_digits,4|@1|$#frac_digits,4|@1|$#p_cs_precedes,4|@1|$#p_sep_by_space,4|@1|$#n_cs_precedes,4|@1|$#n_sep_by_space,4|@1|$#p_sign_posn,4|@1|$#n_sign_posn,}! +0 s45|-1 125 -1 +3 f0 (5|$#,23|0@5@7&#,)! +3 f19 (5|$#,23|0@5@7&#,)! +3 f23 (5|$#,23|0@5@7&#,)! +3 f0 ()! +3 f19 ()! +1 t119|119& +3 f125 ()! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,17|$#,)! +3 f17 (17|$#,17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,5|$#,)! +3 f17 (17|$#,5|$#,)! +3 f0 (17|$#,24|4@0@7&#,)! +3 f17 (17|$#,24|4@0@7&#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,17|$#,)! +3 f17 (17|$#,17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,)! +3 f17 (17|$#,)! +3 f0 (17|$#,36|4@0@7&#,)! +3 f17 (17|$#,36|4@0@7&#,)! +3 f0 (17|$#,17|$#,)! +3 f17 (17|$#,17|$#,)! +0 a123|& +3 f0 (171|4@0@7&#,)! +3 f5 (171|4@0@7&#,)! +3 f0 (171|$#,5|$#,)! +3 f1 (171|$#,5|$#,)! +0 s132|& +3 ?! +3 f177 (5|$#,)! +3 f1 (5|$#,)^180 +1 t179|179& +3 ?! +3 f181 (5|$#,)! +3 f1 (5|$#,)^184 +1 t183|183& +3 ?! +3 f185 (5|$#,)! +3 f1 (5|$#,)^188 +1 t187|187& +3 ?! +3 f189 (5|$#,)! +3 f1 (5|$#,)^192 +1 t191|191& +3 f0 (5|$#,192|0@5@7&#,)! +3 f19 (5|$#,192|0@5@7&#,)^195 +1 t194|194& +3 ?! +3 f196 (5|$#,)! +3 f19 (5|$#,)! +3 f1 (5|$#,192|0@5@7&#,)! +3 f1 (5|$#,)! +3 f200 (5|$#,192|0@5@7&#,)! +3 f0 (5|$#,)! +3 f5 (5|$#,)! +0 a138|& +3 f0 (204|4@0@7&#,!.,)! +3 f1 (204|4@0@7&#,!.,)! +3 f0 (204|$#,)! +3 f1 (204|$#,)! +0 a141|-1 211 -1 +0 a142|-1 289 -1 +1 t209|209& +3 f0 (23|$#,)! +3 f5 (23|$#,)! +3 f0 (23|$#,23|$#,)! +3 f5 (23|$#,23|$#,)! +3 f0 ()! +3 f19 ()! +3 f211 ()! +3 f0 (23|@5|4@5@7&#,)! +3 f19 (23|@5|4@5@7&#,)! +3 f23 (23|@5|4@5@7&#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (211|0@5@7&#,)! +3 f5 (211|0@5@7&#,)! +3 f0 (23|$#,23|$#,)! +3 f19 (23|$#,23|$#,)! +3 f211 (23|$#,23|$#,)! +3 f0 (23|$#,23|$#,211|$#,)! +3 f19 (23|$#,23|$#,211|$#,)! +3 f211 (23|$#,23|$#,211|$#,)! +3 f0 (211|$#,23|0@5@19@2@0#,)! +3 f1 (211|$#,23|0@5@19@2@0#,)! +3 f0 (211|$#,23|0@5@19@2@0#,5|$#,63|$#,)! +3 f5 (211|$#,23|0@5@19@2@0#,5|$#,63|$#,)! +3 C0.5/1|! +3 f0 (211|$#,23|$#,!.,)! +3 f5 (211|$#,23|$#,!.,)! +3 f236 (211|$#,23|$#,!.,)! +3 f0 (211|$#,23|$#,!.,)! +3 f5 (211|$#,23|$#,!.,)! +3 f0 (23|$#,!.,)! +3 f5 (23|$#,!.,)! +3 f236 (23|$#,!.,)! +3 f0 (23|$#,!.,)! +3 f5 (23|$#,!.,)! +3 f0 (23|4@0@7&#,23|$#,!.,)! +3 f5 (23|4@0@7&#,23|$#,!.,)! +3 f236 (23|4@0@7&#,23|$#,!.,)! +3 f0 (23|4@0@7&#,23|$#,!.,)! +3 f5 (23|4@0@7&#,23|$#,!.,)! +3 f0 (23|$#,204|$#,)! +3 f5 (23|$#,204|$#,)! +3 f0 (211|$#,23|$#,204|$#,)! +3 f5 (211|$#,23|$#,204|$#,)! +3 f0 (23|4@0@7&#,23|$#,204|$#,)! +3 f5 (23|4@0@7&#,23|$#,204|$#,)! +3 f0 (23|4@0@7&#,63|$#,23|$#,204|$#,)! +3 f5 (23|4@0@7&#,63|$#,23|$#,204|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (23|@5|4@0@7&#,5|$#,211|$#,)! +3 f19 (23|@5|4@0@7&#,5|$#,211|$#,)! +3 f23 (23|@5|4@0@7&#,5|$#,211|$#,)! +3 C0.5/4|! +3 f0 (265|$#,211|$#,)! +3 f5 (265|$#,211|$#,)! +3 f0 (23|$#,211|$#,)! +3 f5 (23|$#,211|$#,)! +3 f0 (211|@7|$#,)! +3 f5 (211|@7|$#,)! +3 f0 ()! +3 f5 ()! +3 f0 (23|4@0@7&#,)! +3 f19 (23|4@0@7&#,)! +3 f23 (23|4@0@7&#,)! +3 f0 (265|$#,211|@7|$#,)! +3 f5 (265|$#,211|@7|$#,)! +3 f0 (265|$#,)! +3 f5 (265|$#,)! +3 f0 (23|$#,)! +3 f5 (23|$#,)! +3 f0 (265|$#,211|$#,)! +3 f5 (265|$#,211|$#,)! +3 f0 (20|4@0@7&#,63|$#,63|$#,211|$#,)! +3 f63 (20|4@0@7&#,63|$#,63|$#,211|$#,)! +3 f0 (20|$#,63|$#,63|$#,211|$#,)! +3 f63 (20|$#,63|$#,63|$#,211|$#,)! +1 t210|210& +3 f0 (211|$#,289|4@0@7&#,)! +3 f5 (211|$#,289|4@0@7&#,)! +3 f0 (211|$#,9|$#,5|$#,)! +3 f5 (211|$#,9|$#,5|$#,)! +3 f0 (211|$#,289|$#,)! +3 f5 (211|$#,289|$#,)! +3 f0 (211|$#,)! +3 f9 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (23|0@5@7&#,)! +3 f1 (23|0@5@7&#,)! +3 f0 (23|$#,)! +3 f17 (23|$#,)! +3 f0 (23|$#,)! +3 f5 (23|$#,)! +3 f0 (23|$#,)! +3 f9 (23|$#,)! +1 t19|19& +1 t23|23& +3 f0 (23|$#,315|4@5@7&#,)! +3 f17 (23|$#,315|4@5@7&#,)! +3 f0 (23|$#,315|4@5@7&#,5|$#,)! +3 f9 (23|$#,315|4@5@7&#,5|$#,)! +3 f0 (23|$#,315|4@5@7&#,5|$#,)! +3 f10 (23|$#,315|4@5@7&#,5|$#,)! +3 f0 ()! +3 f5 ()! +3 f0 (6|$#,)! +3 f1 (6|$#,)! +3 f0 (63|$#,63|$#,)! +3 f19 (63|$#,63|$#,)! +3 f20 (63|$#,63|$#,)! +3 f0 (63|$#,)! +3 f19 (63|$#,)! +3 f20 (63|$#,)! +3 f0 (20|@5|4@5@2&#,63|$#,)! +3 f19 (20|@5|4@5@2&#,63|$#,)! +3 f20 (20|@5|4@5@2&#,63|$#,)! +3 f0 (20|4@5@2&#,)! +3 f1 (20|4@5@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (5|$#,)! +3 f1 (5|$#,)! +3 ?! +3 f341 ()! +3 f1 ()^344 +1 t343|343& +3 f0 (344|$#,)! +3 f5 (344|$#,)! +3 f0 (23|$#,)! +3 f19 (23|$#,)! +3 f23 (23|$#,)! +3 f0 (23|0@5@7&#,)! +3 f5 (23|0@5@7&#,)! +3 ?! +3 f352 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^355 +1 t354|354& +3 f0 (20|$#,20|$#,63|$#,63|$#,355|$#,)! +3 f19 (20|$#,20|$#,63|$#,63|$#,355|$#,)! +3 f20 (20|$#,20|$#,63|$#,63|$#,355|$#,)! +3 ?! +3 f359 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^362 +1 t361|361& +3 f0 (20|$#,63|$#,63|$#,362|$#,)! +3 f1 (20|$#,63|$#,63|$#,362|$#,)! +3 f0 (5|$#,)! +3 f5 (5|$#,)! +3 S!2{5|@1|$#quot,5|@1|$#rem,}! +0 s221|& +0 s222|& +3 f0 (5|$#,5|$#,)! +3 f369 (5|$#,5|$#,)! +3 f0 (9|$#,)! +3 f9 (9|$#,)! +3 S!3{9|@1|$#quot,9|@1|$#rem,}! +0 s225|& +0 s226|& +3 f0 (9|$#,9|$#,)! +3 f376 (9|$#,9|$#,)! +3 f0 (5|$#,)! +3 f66 (5|$#,)! +3 f0 (211|$#,)! +3 f66 (211|$#,)! +1 t65|65 465 -1 +3 f0 (383|@5|$#,5|$#,211|$#,)! +3 f19 (383|@5|$#,5|$#,211|$#,)! +3 f383 (383|@5|$#,5|$#,211|$#,)! +3 f0 (65|$#,211|$#,)! +3 f66 (65|$#,211|$#,)! +3 f0 (383|$#,211|$#,)! +3 f5 (383|$#,211|$#,)! +3 f0 (211|$#,5|$#,)! +3 f5 (211|$#,5|$#,)! +3 f0 (211|$#,383|$#,!.,)! +3 f5 (211|$#,383|$#,!.,)! +3 f0 (211|$#,383|$#,!.,)! +3 f5 (211|$#,383|$#,!.,)! +3 f0 (211|@7|$#,)! +3 f66 (211|@7|$#,)! +3 f0 ()! +3 f66 ()! +1 t67|67& +3 f0 (23|$#,63|$#,401|0@5@7&#,)! +3 f63 (23|$#,63|$#,401|0@5@7&#,)! +3 f0 (383|0@5@7&#,23|$#,63|$#,401|0@5@7&#,)! +3 f63 (383|0@5@7&#,23|$#,63|$#,401|0@5@7&#,)! +3 f0 (401|0@5@7&#,)! +3 f5 (401|0@5@7&#,)! +3 f0 (383|0@5@7&#,315|$#,63|$#,401|0@5@7&#,)! +3 f63 (383|0@5@7&#,315|$#,63|$#,401|0@5@7&#,)! +3 f0 (65|$#,211|@7|$#,)! +3 f66 (65|$#,211|@7|$#,)! +3 f0 (65|$#,)! +3 f66 (65|$#,)! +3 f0 (383|$#,63|$#,383|$#,!.,)! +3 f5 (383|$#,63|$#,383|$#,!.,)! +3 f0 (383|$#,383|$#,!.,)! +3 f5 (383|$#,383|$#,!.,)! +3 f0 (66|$#,211|$#,)! +3 f66 (66|$#,211|$#,)! +3 f0 (211|$#,383|$#,204|$#,)! +3 f5 (211|$#,383|$#,204|$#,)! +3 f0 (383|$#,63|$#,383|$#,204|$#,)! +3 f5 (383|$#,63|$#,383|$#,204|$#,)! +3 f0 (383|$#,204|$#,)! +3 f5 (383|$#,204|$#,)! +3 f0 (23|4@5@7&#,65|$#,401|0@5@7&#,)! +3 f63 (23|4@5@7&#,65|$#,401|0@5@7&#,)! +3 C0.1/383|! +3 f0 (383|@5|4@0@9&#,383|$#,)! +3 f1 (383|@5|4@0@9&#,383|$#,)! +3 f428 (383|@5|4@0@9&#,383|$#,)! +3 f0 (383|@5|$#,65|$#,)! +3 f19 (383|@5|$#,65|$#,)! +3 f383 (383|@5|$#,65|$#,)! +3 f0 (383|$#,383|$#,)! +3 f5 (383|$#,383|$#,)! +3 f0 (383|$#,383|$#,)! +3 f5 (383|$#,383|$#,)! +3 f0 (383|@5|4@0@9&#,383|$#,)! +3 f1 (383|@5|4@0@9&#,383|$#,)! +3 f428 (383|@5|4@0@9&#,383|$#,)! +3 f0 (383|$#,383|$#,)! +3 f63 (383|$#,383|$#,)! +0 s261|-1 445 -1 +1 t444|444& +3 f0 (383|4@0@7&#,63|$#,383|$#,445|$#,)! +3 f63 (383|4@0@7&#,63|$#,383|$#,445|$#,)! +3 f0 (383|$#,)! +3 f63 (383|$#,)! +3 C0.1/383|! +3 f0 (383|@5|4@0@9&#,383|$#,63|$#,)! +3 f1 (383|@5|4@0@9&#,383|$#,63|$#,)! +3 f450 (383|@5|4@0@9&#,383|$#,63|$#,)! +3 f0 (383|$#,383|$#,63|$#,)! +3 f5 (383|$#,383|$#,63|$#,)! +3 f0 (383|@5|4@0@9&#,383|$#,63|$#,)! +3 f1 (383|@5|4@0@9&#,383|$#,63|$#,)! +3 f450 (383|@5|4@0@9&#,383|$#,63|$#,)! +3 f0 (383|@5|$#,383|$#,)! +3 f19 (383|@5|$#,383|$#,)! +3 f383 (383|@5|$#,383|$#,)! +3 f0 (383|@5|$#,65|$#,)! +3 f19 (383|@5|$#,65|$#,)! +3 f383 (383|@5|$#,65|$#,)! +1 t383|383& +3 f0 (23|0@5@7&#,465|$#,63|$#,401|0@5@7&#,)! +3 f63 (23|0@5@7&#,465|$#,63|$#,401|0@5@7&#,)! +3 f0 (383|$#,383|$#,)! +3 f63 (383|$#,383|$#,)! +3 f0 (383|$#,383|$#,)! +3 f19 (383|$#,383|$#,)! +3 f383 (383|$#,383|$#,)! +3 f0 (383|$#,465|0@5@7&#,)! +3 f17 (383|$#,465|0@5@7&#,)! +3 f0 (383|0@5@7&#,383|$#,465|$#,)! +3 f19 (383|0@5@7&#,383|$#,465|$#,)! +3 f383 (383|0@5@7&#,383|$#,465|$#,)! +3 f0 (383|$#,465|0@5@7&#,5|$#,)! +3 f9 (383|$#,465|0@5@7&#,5|$#,)! +3 f0 (383|$#,465|0@5@7&#,5|$#,)! +3 f10 (383|$#,465|0@5@7&#,5|$#,)! +3 f0 (383|0@5@7&#,383|$#,63|$#,)! +3 f63 (383|0@5@7&#,383|$#,63|$#,)! +3 f0 (66|$#,)! +3 f5 (66|$#,)! +3 f0 (383|$#,65|$#,63|$#,)! +3 f19 (383|$#,65|$#,63|$#,)! +3 f383 (383|$#,65|$#,63|$#,)! +3 f0 (383|$#,383|$#,63|$#,)! +3 f5 (383|$#,383|$#,63|$#,)! +3 f0 (383|@5|$#,383|$#,63|$#,)! +3 f19 (383|@5|$#,383|$#,63|$#,)! +3 f383 (383|@5|$#,383|$#,63|$#,)! +3 f0 (383|@5|$#,383|$#,63|$#,)! +3 f19 (383|@5|$#,383|$#,63|$#,)! +3 f383 (383|@5|$#,383|$#,63|$#,)! +3 f0 (383|@5|$#,65|$#,63|$#,)! +3 f19 (383|@5|$#,65|$#,63|$#,)! +3 f383 (383|@5|$#,65|$#,63|$#,)! +3 f0 (383|$#,!.,)! +3 f5 (383|$#,!.,)! +3 f0 (383|$#,!.,)! +3 f5 (383|$#,!.,)! +0 s285|& +0 s286|& +3 C0.2/5|! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f506 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f506 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f506 (66|$#,)! +3 f0 (66|$#,504|$#,)! +3 f2 (66|$#,504|$#,)! +3 f506 (66|$#,504|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f506 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 C0.2/5|! +3 f524 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f524 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f524 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f524 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f524 (66|$#,)! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f524 (66|$#,)! +3 C0.2/5|! +3 f0 (66|$#,)! +3 f2 (66|$#,)! +3 f541 (66|$#,)! +3 C0.66/5|! +3 f0 (66|$#,505|$#,)! +3 f66 (66|$#,505|$#,)! +3 f545 (66|$#,505|$#,)! +3 f0 (66|$#,)! +3 f66 (66|$#,)! +3 f545 (66|$#,)! +3 f0 (66|$#,)! +3 f66 (66|$#,)! +3 f545 (66|$#,)! +3 f0 (23|$#,)! +3 f505 (23|$#,)! +3 f0 (23|$#,)! +3 f504 (23|$#,)! +3 f0 (23|$#,63|$#,)! +3 f5 (23|$#,63|$#,)! +3 f0 (383|0@5@7&#,23|0@5@7&#,63|$#,)! +3 f5 (383|0@5@7&#,23|0@5@7&#,63|$#,)! +3 f0 (23|4@5@7&#,65|$#,)! +3 f5 (23|4@5@7&#,65|$#,)! +3 f0 (383|4@0@7&#,23|$#,63|$#,)! +3 f63 (383|4@0@7&#,23|$#,63|$#,)! +3 f0 (23|4@0@7&#,383|$#,63|$#,)! +3 f63 (23|4@0@7&#,383|$#,63|$#,)! +3 C0.1/20|! +3 f0 (20|@5|4@0@9&#,20|$#,63|$#,)! +3 f1 (20|@5|4@0@9&#,20|$#,63|$#,)! +3 f569 (20|@5|4@0@9&#,20|$#,63|$#,)! +3 f0 (20|@5|4@0@7&#,20|$#,63|$#,)! +3 f1 (20|@5|4@0@7&#,20|$#,63|$#,)! +3 f569 (20|@5|4@0@7&#,20|$#,63|$#,)! +3 C0.1/23|! +3 f0 (23|@5|4@0@9&#,23|$#,)! +3 f1 (23|@5|4@0@9&#,23|$#,)! +3 f576 (23|@5|4@0@9&#,23|$#,)! +3 f0 (23|@5|4@0@9&#,23|$#,63|$#,)! +3 f1 (23|@5|4@0@9&#,23|$#,63|$#,)! +3 f576 (23|@5|4@0@9&#,23|$#,63|$#,)! +3 f0 (23|@5|0@0@9&#,23|$#,)! +3 f1 (23|@5|0@0@9&#,23|$#,)! +3 f576 (23|@5|0@0@9&#,23|$#,)! +3 f0 (23|@5|0@0@9&#,23|$#,63|$#,)! +3 f1 (23|@5|0@0@9&#,23|$#,63|$#,)! +3 f576 (23|@5|0@0@9&#,23|$#,63|$#,)! +3 f0 (20|$#,20|$#,63|$#,)! +3 f5 (20|$#,20|$#,63|$#,)! +3 f0 (23|$#,23|$#,)! +3 f5 (23|$#,23|$#,)! +3 f0 (23|$#,23|$#,)! +3 f5 (23|$#,23|$#,)! +3 f0 (23|$#,23|$#,63|$#,)! +3 f5 (23|$#,23|$#,63|$#,)! +3 f0 (23|4@5@7&#,23|$#,63|$#,)! +3 f63 (23|4@5@7&#,23|$#,63|$#,)! +3 f0 (20|$#,5|$#,63|$#,)! +3 f19 (20|$#,5|$#,63|$#,)! +3 f20 (20|$#,5|$#,63|$#,)! +3 f0 (23|@5|$#,265|$#,)! +3 f19 (23|@5|$#,265|$#,)! +3 f23 (23|@5|$#,265|$#,)! +3 f0 (23|$#,23|$#,)! +3 f63 (23|$#,23|$#,)! +3 f0 (23|@5|$#,23|$#,)! +3 f19 (23|@5|$#,23|$#,)! +3 f23 (23|@5|$#,23|$#,)! +3 f0 (23|@5|$#,265|$#,)! +3 f19 (23|@5|$#,265|$#,)! +3 f23 (23|@5|$#,265|$#,)! +3 f0 (23|$#,23|$#,)! +3 f63 (23|$#,23|$#,)! +3 f0 (23|@5|0@0@9&#,23|$#,)! +3 f19 (23|@5|0@0@9&#,23|$#,)! +3 f23 (23|@5|0@0@9&#,23|$#,)! +3 f0 (23|@5|0@5@7&#,23|$#,)! +3 f19 (23|@5|0@5@7&#,23|$#,)! +3 f23 (23|@5|0@5@7&#,23|$#,)! +3 C0.1/20|! +3 f0 (20|@5|4@0@7&#,5|$#,63|$#,)! +3 f1 (20|@5|4@0@7&#,5|$#,63|$#,)! +3 f621 (20|@5|4@0@7&#,5|$#,63|$#,)! +3 f0 (5|$#,)! +3 f19 (5|$#,)! +3 f23 (5|$#,)! +3 f0 (23|$#,)! +3 f63 (23|$#,)! +0 s332|& +0 s333|-1 639 -1 +3 Stm{5|@1|$#tm_sec,5|@1|$#tm_min,5|@1|$#tm_hour,5|@1|$#tm_mday,5|@1|$#tm_mon,5|@1|$#tm_year,5|@1|$#tm_wday,5|@1|$#tm_yday,5|@1|$#tm_isdst,}! +3 f0 ()! +3 f630 ()! +3 f0 (631|$#,631|$#,)! +3 f17 (631|$#,631|$#,)! +3 f0 (445|$#,)! +3 f631 (445|$#,)! +1 t631|631& +3 f0 (639|4@5@7&#,)! +3 f631 (639|4@5@7&#,)! +3 f0 (445|$#,)! +3 f19 (445|$#,)! +3 f23 (445|$#,)! +3 f0 (639|$#,)! +3 f19 (639|$#,)! +3 f23 (639|$#,)! +3 f0 (639|$#,)! +3 f19 (639|$#,)! +3 f445 (639|$#,)! +3 f0 (639|$#,)! +3 f19 (639|$#,)! +3 f445 (639|$#,)! +3 f0 (23|4@0@7&#,63|$#,23|$#,445|$#,)! +3 f63 (23|4@0@7&#,63|$#,23|$#,445|$#,)! +0 s343|& +0 s344|& +0 s345|& +0 s346|& +0 s347|& +0 s348|& +0 s349|& +0 s350|& +0 s351|& +0 s352|& +0 s353|& +0 s354|& +0 s355|& +0 s356|& +0 s357|& +0 s358|& +0 s359|& +0 s360|& +0 s361|& +0 s362|& +0 s363|& +0 s364|& +0 s365|& +0 s366|& +0 s367|& +0 s368|& +0 s369|& +0 s370|& 3 C1.5/1|! 3 f0 (!.,)! 3 f5 (!.,)! -3 f61 (!.,)! +3 f684 (!.,)! 3 f0 (!.,)! 3 f5 (!.,)! -3 f61 (!.,)! +3 f684 (!.,)! ;;tistable +0 +28 +28,123 +123 +28,123,138 +138 +28,123,138,141 +141 +28,123,138,141,142 +142 ;;symTable +*0 (Datatype) +^0 2@+@-@0@0@0@0@2#lltX_bool +*1 (Constant) +^1 2@i0@0@6#FALSE +^2 2@i1@0@0#TRUE *11 (GlobalMarker) *1 (Constant) -^1 5$#__LINE__ -^2 23$#__DATE__#__FILE__#__BASE_FILE__ -^5 5$#__INCLUDE_LEVEL__ -^6 23$#__VERSION__ +^4 5$#__LINE__ +^5 23$#__DATE__#__FILE__#__BASE_FILE__ +^8 5$#__INCLUDE_LEVEL__ +^9 23$#__VERSION__ +*0 (Datatype) +^10 13@-@-@0@0@0@0@59#__SIZE_TYPE__ +^11 13@-@-@0@0@0@0@60#__PTRDIFF_TYPE__ +^12 13@-@-@0@0@0@0@61#__WCHAR_TYPE__ +*1 (Constant) +^13 23$#__USER_LABEL_PREFIX__#__REGISTER_PREFIX__#__TIME__ +^16 5$#__LCLINT__ +*3 (Variable) +^17 211|@1|6@0@0@0@1#stdin#stdout +*1 (Constant) +^19 5$#EDOM#ERANGE#EILSEQ +*3 (Variable) +^22 5|@1|6@0@0@0@1#errno +*0 (Datatype) +^23 13@-@-@0@0@0@0@62#ptrdiff_t +^24 14@-@-@0@0@0@0@63#size_t +^25 15@-@-@0@0@0@0@64#ssize_t +^26 13@-@-@0@0@0@0@65#wchar_t +^27 13@-@-@0@0@0@0@66#wint_t +^28 0@+@=@0@7@0@0@67#mbstate_t +*1 (Constant) +^29 0@i0@0@6#NULL +^30 2$#NDEBUG +*4 (Function) +^31 72@6@0@8@0@0^$@0#assert +^32 76$^$@0#isalnum +^33 79$^$@0#isalpha +^34 82$^$@0#iscntrl +^35 85$^$@0#isdigit +^36 89$^$@0#isgraph +^37 93$^$@0#islower +^38 96$^$@0#isprint +^39 99$^$@0#ispunct +^40 102$^$@0#isspace +^41 106$^$@0#isupper +^42 110$^$@0#isxdigit +^43 114$^$@0#tolower +^44 117$^$@0#toupper +*7 (Struct tag) +^45 118@119#@lconv +*1 (Constant) +^46 5$#LC_ALL#LC_COLLATE#LC_CTYPE#LC_MONETARY#LC_NUMERIC#LC_TIME +*4 (Function) +^52 122@6@5@1@0@0@0@s1,g22@6@0@1@s1,g22@19@3@0#setlocale +^53 126$^@3@0@0#localeconv +*3 (Variable) +^54 5|@1|6@0@0@0@1#DBL_DIG +^55 17|@1|6@0@0@0@1#DBL_EPSILON +^56 5|@1|6@0@0@0@1#DBL_MANT_DIG +^57 17|@1|6@0@0@0@1#DBL_MAX +^58 5|@1|6@0@0@0@1#DBL_MAX_10_EXP#DBL_MAX_EXP +^60 17|@1|6@0@0@0@1#DBL_MIN +^61 5|@1|6@0@0@0@1#DBL_MIN_10_EXP#DBL_MIN_EXP#FLT_DIG +^64 16|@1|6@0@0@0@1#FLT_EPSILON +^65 5|@1|6@0@0@0@1#FLT_MANT_DIG +^66 16|@1|6@0@0@0@1#FLT_MAX +^67 5|@1|6@0@0@0@1#FLT_MAX_10_EXP#FLT_MAX_EXP +^69 16|@1|6@0@0@0@1#FLT_MIN +^70 5|@1|6@0@0@0@1#FLT_MIN_10_EXP#FLT_MIN_EXP +*1 (Constant) +^72 5$#FLT_RADIX +*3 (Variable) +^73 5|@1|6@0@0@0@1#FLT_ROUNDS#LDBL_DIG +^75 18|@1|6@0@0@0@1#LDBL_EPSILON +^76 5|@1|6@0@0@0@1#LDBL_MANT_DIG +^77 18|@1|6@0@0@0@1#LDBL_MAX +^78 5|@1|6@0@0@0@1#LDBL_MAX_10_EXP#LDBL_MAX_EXP +^80 18|@1|6@0@0@0@1#LDBL_MIN +^81 5|@1|6@0@0@0@1#LDBL_MIN_10_EXP#LDBL_MIN_EXP +*1 (Constant) +^83 5$#CHAR_BIT +^84 4$#CHAR_MAX#CHAR_MIN +^86 5$#INT_MAX#INT_MIN +^88 9$#LONG_MAX#LONG_MIN#MB_LEN_MAX +^91 4$#SCHAR_MAX#SCHAR_MIN +^93 7$#SHRT_MAX#SHRT_MIN +^95 3$#UCHAR_MAX#UCHAR_MIN +^97 6$#UINT_MAX +^98 10$#ULONG_MAX +^99 8$#USHRT_MAX +^100 17$#HUGE_VAL +*4 (Function) +^101 128$^$@0#sin +^102 130$^$@0#cos +^103 132$^$@0#tan +^104 134$@0@g22@6@0@1@g22$@0#asin +^105 136$@0@g22@6@0@1@g22$@0#acos +^106 138$^$@0#atan +^107 140$^$@0#atan2 +^108 142$^$@0#sinh +^109 144$@0@g22@6@0@1@g22$@0#cosh +^110 146$^$@0#tanh +^111 148$@0@g22@6@0@1@g22$@0#exp +^112 150$@0@g22@6@0@1@g22$@0#ldexp +^113 152$@0@@1@tp1$@0#frexp +^114 154$@0@g22@6@0@1@g22$@0#log +^115 156$@0@g22@6@0@1@g22$@0#log10 +^116 158$@0@g22@6@0@1@g22$@0#pow +^117 160$@0@g22@6@0@1@g22$@0#sqrt +^118 162$^$@0#ceil +^119 164$^$@0#floor +^120 166$^$@0#fabs +^121 168$@0@@1@tp1$@0#modf +^122 170$^$@0#fmod +*0 (Datatype) +^123 20@+@+@0@0@0@0@171#jmp_buf +*4 (Function) +^124 173$@0@@1@p0$@0#setjmp +^125 175@6@0@5@0@0^$@0#longjmp +*1 (Constant) +^126 5$#SIGABRT#SIGFPE#SIGILL#SIGINT#SIGSEGV#SIGTERM +*0 (Datatype) +^132 13@-@-@0@0@0@0@176#sig_atomic_t +*1 (Constant) +^133 180$#SIG_DFL +^134 184$#SIG_ERR +^135 188$#SIG_IGN +*4 (Function) +^136 201@6@5@1@0@0@0@s1,g22@6@0@1@s1,g22$@0#signal +^137 203@6@0@5@0@0$$@0#raise +*0 (Datatype) +^138 20@+@+@0@0@0@0@204#va_list +*4 (Function) +^139 206$@0@@1@p0$@0#va_start +^140 208$@0@@1@p0$@0#va_end *0 (Datatype) -^7 13@-@-@0@0@0@0@58#__SIZE_TYPE__ -^8 13@-@-@0@0@0@0@59#__PTRDIFF_TYPE__ -^9 13@-@-@0@0@0@0@60#__WCHAR_TYPE__ +^141 20@+@+@0@0@0@0@209#FILE +^142 20@+@+@0@0@0@0@210#fpos_t *1 (Constant) -^10 23$#__USER_LABEL_PREFIX__#__REGISTER_PREFIX__#__TIME__ -^13 5$#__LCLINT__ +^143 5$#_IOFBF#_IOLBF#_IONBF#BUFSIZ#EOF#FOPEN_MAX#FILENAME_MAX#L_tmpnam#SEEK_CUR#SEEK_END#SEEK_SET#TMP_MAX *3 (Variable) -^14 0|@1|^#stdin#stdout +^155 211|@1|6@0@0@0@1#stderr +*4 (Function) +^156 213$@0@s3,g22@6@0@1@s3,g22$@0#remove +^157 215$@0@s3,g22@6@0@1@s3,g22$@0#rename +^158 218@6@5@1@0@0@0@s3@1@s3@3@0@0#tmpfile +^159 221$@0@s1@1@tp0,s1@19@3@0#tmpnam +^160 223$@0@g22@6@0,s3@1@tp0,g22,s3$@0#fclose +^161 225$@0@g22@6@0,s3@1@tp0,g22,s3$@0#fflush +^162 228@6@5@1@0@0@0@s3@1@s3@18@0@0#fopen +^163 231@6@5@1@0@0@0@s3,g22@6@0@1@tp2,s3,g22@3@0@0#freopen +^164 233$@0@s3@1@s3,tp0,tp1$@0#setbuf +^165 235$@0@s3@1@s3,tp0,tp1$@0#setvbuf +^166 239@6@0@1@1@0@0@s3@1@s3,tp0$@0#fprintf +^167 241@6@0@1@2@0@0@s3@1@s3,tp0$@0#fscanf +^168 244@6@0@1@1@0@1@g18@6@0,s3@1@s3,tg18$@0#printf +^169 246@6@0@1@2@0@1@g17@6@0,s3@1@s3,tg17$@0#scanf +^170 249@6@0@1@1@0@0@@1@tp0$@0#sprintf +^171 251@6@0@1@2@0^$@0#sscanf +^172 253$@1@g18@6@0,s3@1@s3,tg18$@0#vprintf +^173 255$@0@s3,g22@6@0@1@s3,tp0,p2,g22$@0#vfprintf +^174 257$@0@@1@p0$@0@W:bufferoverflowhigh#Use vsnprintf instead##vsprintf +^175 259$@0@@1@p0$@0#vsnprintf +^176 261$@0@s3,g22@6@0@1@s3,tp0,g22$@0#fgetc +^177 264@6@5@1@0@0@0@s3,g22@6@0@1@s3,tp0,tp2,g22$@0#fgets +^178 267$@0@s3,g22@6@0@1@s3,tp1,g22$@0#fputc +^179 269$@0@s3@1@s3,tp1$@0#fputs +^180 271$@0@s3@1@s3,tp0$@0#getc +^181 273$@1@g17@6@0,s3@1@s3,tg17$@0#getchar +^182 276@6@5@1@0@0@1@g17@6@0,s3,g22@6@0@1@s3,tp0,tg17,g22@3@0@0@W:bufferoverflowhigh#Use of gets leads to a buffer overflow vulnerability. Use fgets instead##gets +^183 278$@0@s3@1@s3,tp1$@0#putc +^184 280$@1@g18@6@0,s3@1@s3,tg18$@0#putchar +^185 282$@1@g18@6@0,s3@1@s3,tg18$@0#puts +^186 284$@0@s3,g22@6@0@1@s3,tp1,g22$@0#ungetc +^187 286$@0@s3,g22@6@0@1@s3,tp0,tp3,g22$@0#fread +^188 288$@0@s3,g22@6@0@1@s3,tp3,g22$@0#fwrite +^189 291$@0@g22@6@0@1@tp1,g22$@0#fgetpos +^190 293$@0@s3,g22@6@0@1@s3,tp0,g22$@0#fseek +^191 295$@0@s3,g22@6@0@1@s3,tp0,g22$@0#fsetpos +^192 297$@0@g22@6@0@1@g22$@0#ftell +^193 299$@0@@1@tp0$@0#rewind +^194 301$@0@@1@tp0$@0#clearerr +^195 303$@0@g22@6@0@1@g22$@0#feof +^196 305$@0@g22@6@0@1@g22$@0#ferror +^197 307$@1@g22@6@0,g155@6@0,s3@1@s3,tg155$@0#perror +^198 309$^$@0#atof +^199 311$^$@0#atoi +^200 313$^$@0#atol +^201 317$@0@g22@6@0@1@tp1,g22$@0#strtod +^202 319$@0@g22@6@0@1@tp1,g22$@0#strtol +^203 321$@0@g22@6@0@1@tp1,g22$@0#strtoul +*1 (Constant) +^204 5$#RAND_MAX +*4 (Function) +^205 323$@0@s1@1@s1$@0#rand +^206 325$@0@s1@1@s1$@0#srand +^207 328@6@5@1@0@0^@2@0@0#calloc +^208 331@4@5@1@0@0^@2@0@0#malloc +^209 334@6@5@1@0@0@0@@1@tp0@2@0@0#realloc +^210 336$@0@@1@p0$@0#free +*1 (Constant) +^211 5$#EXIT_FAILURE#EXIT_SUCCESS +*4 (Function) +^213 338@6@0@6@0@0^$@0#abort +^214 340@6@0@6@0@0^$@0#exit +^215 346$@0@s1@1@s1$@0#atexit +^216 349@6@5@1@0@0^@19@3@0#getenv +^217 351$@0@s3@1@s3$@0#system +^218 358@6@5@1@0@0^@18@0@0#bsearch +^219 364$@0@g22@6@0@1@tp0,g22$@0#qsort +^220 366$^$@0#abs +*7 (Struct tag) +^221 367@368#@!2 +*0 (Datatype) +^222 367@-@-@0@0@0@0@369#div_t +*4 (Function) +^223 371$^$@0#div +^224 373$^$@0#labs +*7 (Struct tag) +^225 374@375#@!3 +*0 (Datatype) +^226 374@-@-@0@0@0@0@376#ldiv_t +*4 (Function) +^227 378$^$@0#ldiv +*1 (Constant) +^228 63$#MB_CUR_MAX +^229 5$#WCHAR_MAX#WCHAR_MIN +^231 66$#WEOF +*4 (Function) +^232 380$^$@0#btowc +^233 382$@0@s3@1@s3,tp0$@0#fgetwc +^234 386@6@5@1@0@0@0@s3@1@s3,tp0,tp2$@0#fgetws +^235 388$@0@s3@1@s3,tp1$@0#fputwc +^236 390$@0@s3@1@s3,tp1$@0#fputws +^237 392$^$@0#fwide +^238 394@6@0@1@1@0@0@s3@1@tp0,s3$@0#fwprintf +^239 396@6@0@1@2@0@0@s3@1@tp0,s3$@0#fwscanf +^240 398$@0@s3@1@s3,tp0$@0#getwc +^241 400$@0@s3,g17@6@0@1@s3,tg17$@0#getwchar +^242 403$^$@0#mbrlen +^243 405$@0@@1@tp0$@0#mbrtowc +^244 407$^$@0#mbsinit +^245 409$@0@@1@tp0$@0#mbsrtowcs +^246 411$@0@s3@1@s3,tp1$@0#putwc +^247 413$@0@s3,g18@6@0@1@s3,tg18$@0#putwchar +^248 415@6@0@1@1@0@0@@1@tp0$@0#swprintf +^249 417@6@0@1@2@0@0@g17@6@0@1@tg17$@0#swscanf +^250 419$@0@s3@1@s3,tp1$@0#ungetwc +^251 421$@0@s3@1@s3,tp0$@0#vfwprintf +^252 423$@0@@1@tp0$@0#vswprintf +^253 425$@0@s3,g18@6@0@1@s3,tg18$@0#vwprintf +^254 427$@0@@1@tp0$@0#wcrtomb +^255 431$@0@@1@tp0$@0#wcscat +^256 434@6@5@1@0@0^@19@2@0#wcschr +^257 436$^$@0#wcscmp +^258 438$^$@0#wcscoll +^259 441$@0@@1@tp0$@0#wcscpy +^260 443$^$@0#wcscspn +*7 (Struct tag) +^261 632@444#@tm +*4 (Function) +^262 447$@0@@1@tp0$@0#wcsftime +^263 449$^$@0#wcslen +^264 453$@0@@1@tp0$@0#wcsncat +^265 455$^$@0#wcsncmp +^266 458$@0@@1@tp0$@0#wcsncpy +^267 461@6@5@1@0@0^$@0#wcspbrk +^268 464@6@5@1@0@0^$@0#wcsrchr +^269 467$@0@@1@tp1$@0#wcsrtombs +^270 469$^$@0#wcsspn +^271 472@6@5@1@0@0^@3@0@0#wcsstr +^272 474$@0@@1@tp1$@0#wcstod +^273 477@6@5@1@0@0@0@@1@tp2@3@0@0#wcstok +^274 479$@0@@1@tp1$@0#wcstol +^275 481$@0@@1@tp1$@0#wcstoul +^276 483$@0@@1@tp0$@0#wcsxfrm +^277 485$^$@0#wctob +^278 488@6@5@1@0@0^@3@0@0#wmemchr +^279 490$^$@0#wmemcmp +^280 493$@0@@1@tp0$@0#wmemcpy +^281 496$@0@@1@tp0$@0#wmemmove +^282 499$@0@@1@tp0$@0#wmemset +^283 501@6@0@1@1@0@1@g18@6@0,g22@6@0@1@g22,tg18$@0#wprintf +^284 503@6@0@1@2@0@1@g17@6@0,g22@6@0@1@g22,tg17$@0#wscanf +*0 (Datatype) +^285 13@-@-@0@0@0@0@504#wctype_t +^286 13@-@-@0@0@0@0@505#wctrans_t +*4 (Function) +^287 509$^$@0#iswalnum +^288 512$^$@0#iswalpha +^289 515$^$@0#iswcntrl +^290 518$^$@0#iswctype +^291 521$^$@0#iswdigit +^292 525$^$@0#iswgraph +^293 528$^$@0#iswlower +^294 531$^$@0#iswprint +^295 534$^$@0#iswpunct +^296 537$^$@0#iswspace +^297 540$^$@0#iswupper +^298 544$^$@0#iswxdigit +^299 548$^$@0#towctrans +^300 551$^$@0#towlower +^301 554$^$@0#towupper +^302 556$^$@0#wctrans +^303 558$^$@0#wctype +^304 560$^$@0#mblen +^305 562$@0@@1@tp0$@0#mbtowc +^306 564$@0@@1@tp0$@0#wctomb +^307 566$@0@@1@tp0$@0#mbstowcs +^308 568$@0@@1@tp0$@0#wcstombs +^309 572$@0@@1@tp0$@0#memcpy +^310 575$@0@@1@tp0$@0#memmove +^311 579$@0@@1@tp0$@0#strcpy +^312 582$@0@@1@tp0$@0#strncpy +^313 585$@0@@1@tp0$@0#strcat +^314 588$@0@@1@tp0$@0#strncat +^315 590$^$@0#memcmp +^316 592$^$@0#strcmp +^317 594$^$@0#strcoll +^318 596$^$@0#strncmp +^319 598$@0@@1@tp0$@0#strxfrm +^320 601@6@5@1@0@0^@3@0@0#memchr +^321 604@6@5@1@0@0^@19@2@0#strchr +^322 606$^$@0#strcspn +^323 609@6@5@1@0@0^@19@2@0#strpbrk +^324 612@6@5@1@0@0^@19@2@0#strrchr +^325 614$^$@0#strspn +^326 617@6@5@1@0@0^@19@2@0#strstr +^327 620@6@5@1@0@0@0@s1,g22@6@0@1@tp0,s1,g22@19@2@0#strtok +^328 624$@0@@1@tp0$@0#memset +^329 627$^@19@3@0#strerror +^330 629$^$@0#strlen +*1 (Constant) +^331 5$#CLOCKS_PER_SEC +*0 (Datatype) +^332 13@-@-@0@0@0@0@630#clock_t +^333 13@-@-@0@0@0@0@631#time_t +*4 (Function) +^334 634$@0@s1@1@s1$@0#clock +^335 636$^$@0#difftime +^336 638$^$@0#mktime +^337 641$@0@@1@tp0$@0#time +^338 644$@0@g22@6@0@1@g22@19@3@0#asctime +^339 647$^@19@3@0#ctime +^340 650@6@5@1@0@0^@19@3@0#gmtime +^341 653@6@5@1@0@0@0@g22@6@0@1@g22@19@3@0#localtime +^342 655$@0@@1@tp0$@0#strftime +*0 (Datatype) +^343 13@-@-@0@0@0@0@656#int8_t +^344 13@-@-@0@0@0@0@657#int16_t +^345 13@-@-@0@0@0@0@658#int32_t +^346 13@-@-@0@0@0@0@659#int64_t +^347 14@-@-@0@0@0@0@660#uint8_t +^348 14@-@-@0@0@0@0@661#uint16_t +^349 14@-@-@0@0@0@0@662#uint32_t +^350 14@-@-@0@0@0@0@663#uint64_t +^351 13@-@-@0@0@0@0@664#int_least8_t +^352 13@-@-@0@0@0@0@665#int_least16_t +^353 13@-@-@0@0@0@0@666#int_least32_t +^354 13@-@-@0@0@0@0@667#int_least64_t +^355 14@-@-@0@0@0@0@668#uint_least8_t +^356 14@-@-@0@0@0@0@669#uint_least16_t +^357 14@-@-@0@0@0@0@670#uint_least32_t +^358 14@-@-@0@0@0@0@671#uint_least64_t +^359 13@-@-@0@0@0@0@672#int_fast8_t +^360 13@-@-@0@0@0@0@673#int_fast16_t +^361 13@-@-@0@0@0@0@674#int_fast32_t +^362 13@-@-@0@0@0@0@675#int_fast64_t +^363 14@-@-@0@0@0@0@676#uint_fast8_t +^364 14@-@-@0@0@0@0@677#uint_fast16_t +^365 14@-@-@0@0@0@0@678#uint_fast32_t +^366 14@-@-@0@0@0@0@679#uint_fast64_t +^367 24@-@+@0@0@0@0@680#intptr_t +^368 25@-@+@0@0@0@0@681#uintptr_t +^369 15@-@-@0@0@0@0@682#intmax_t +^370 14@-@-@0@0@0@0@683#uintmax_t +*1 (Constant) +^371 5$#INT8_MIN#INT16_MIN#INT32_MIN#INT64_MIN#INT8_MAX#INT16_MAX#INT32_MAX#INT64_MAX#UINT8_MIN#UINT16_MIN#UINT32_MIN#UINT64_MIN#INT_LEAST8_MIN#INT_LEAST16_MIN#INT_LEAST32_MIN#INT_LEAST64_MIN#INT_LEAST8_MAX#INT_LEAST16_MAX#INT_LEAST32_MAX#INT_LEAST64_MAX#UINT_LEAST8_MAX#UINT_LEAST16_MAX#UINT_LEAST32_MAX#UINT_LEAST64_MAX#INT_FAST8_MIN#INT_FAST16_MIN#INT_FAST32_MIN#INT_FAST64_MIN#INT_FAST8_MAX#INT_FAST16_MAX#INT_FAST32_MAX#INT_FAST64_MAX#UINT_FAST8_MAX#UINT_FAST16_MAX#UINT_FAST32_MAX#UINT_FAST64_MAX +^407 63$#INTPTR_MIN#INTPTR_MAX *4 (Function) -^16 64$$$@0#test1 -^17 67$$$@0#test2 +^409 687$$$@0#test1 +^410 690$$$@0#test2 ;; Library constraints +vsnprintf +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +2 +2 +Param 63 1 +;; end precondition constraints +post: +;; end precondition constraints +fgets +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +2 +2 +Param 5 1 +e2 +2 +3 +-1 +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Param 23 0 +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Param 23 0 +r +0 +1 +e1 +2 +2 +Param 5 1 +e2 +2 +3 +-1 +;; end precondition constraints +calloc +pre: +;; end precondition constraints +post: +C +0@1@4 +l +1 +1 +2 +2 +Result +r +0 +1 +e1 +2 +2 +Param 63 0 +e2 +2 +3 +-1 +;; end precondition constraints +malloc +pre: +;; end precondition constraints +post: +C +0@1@4 +l +1 +1 +2 +2 +Result +r +0 +1 +e1 +2 +2 +Param 63 0 +e2 +2 +3 +-1 +;; end precondition constraints +realloc +pre: +;; end precondition constraints +post: +C +0@1@3 +l +1 +1 +2 +2 +Result +r +0 +1 +e1 +2 +2 +Param 63 1 +e2 +2 +3 +-1 +;; end precondition constraints +memcpy +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 20 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +C +0@1@3 +l +1 +3 +2 +2 +Param 20 1 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +post: +;; end precondition constraints +memmove +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 20 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +C +0@1@3 +l +1 +3 +2 +2 +Param 20 1 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +post: +;; end precondition constraints +strcpy +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +post: +C +0@1@4 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@4 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 1 +C +0@1@4 +l +1 +3 +2 +2 +Param 23 0 +r +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +strncpy +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +post: +C +0@1@1 +l +1 +3 +2 +2 +Param 23 0 +r +2 +2 +Param 63 2 +C +0@1@3 +l +1 +3 +2 +2 +Param 23 1 +r +1 +3 +2 +2 +Param 23 0 +;; end precondition constraints +strcat +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +post: +C +0@1@4 +l +1 +3 +2 +2 +Result +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +strncat +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +2 +2 +Param 63 2 +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Param 23 0 +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +2 +2 +Param 63 2 +;; end precondition constraints +strchr +pre: +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +C +0@1@1 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@3 +l +1 +1 +2 +2 +Result +r +2 +3 +0 +;; end precondition constraints +strrchr +pre: +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +C +0@1@1 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@3 +l +1 +1 +2 +2 +Result +r +2 +3 +0 +;; end precondition constraints +strstr +pre: +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +C +0@1@1 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@3 +l +1 +1 +2 +2 +Result +r +2 +3 +0 +;; end precondition constraints +memset +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 20 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Param 20 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +strlen +pre: +;; end precondition constraints +post: +C +0@1@4 +l +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +;; end precondition constraints +asctime +pre: +;; end precondition constraints +post: +C +0@1@4 +l +1 +3 +2 +2 +Result +r +2 +3 +25 +C +0@1@4 +l +1 +1 +2 +2 +Result +r +2 +3 +25 +;; end precondition constraints +ctime +pre: +;; end precondition constraints +post: +C +0@1@4 +l +1 +3 +2 +2 +Result +r +2 +3 +25 +C +0@1@4 +l +1 +1 +2 +2 +Result +r +2 +3 +25 +;; end precondition constraints ;; Modules access +lltX_bool#1@ +types#1@ +ansi#9@ ;;End diff --git a/test/typequals.out b/test/typequals.out index d6c6a15..d9fa2d8 100644 --- a/test/typequals.out +++ b/test/typequals.out @@ -1,7 +1,18 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +tq.h:3:45: Datatype tmixm inconsistently declared as immutable + tq.lcl:3:1: Specification of tmixm +tq.h:4:45: Datatype tmixa inconsistently declared as abstract type + tq.lcl:5:14: Specification of tmixa +tq.h:5:45: Datatype tmixi inconsistently declared as mutable + tq.lcl:4:1: Specification of tmixi +typequals.c: (in function f) +typequals.c:6:4: Operand of * is abstract type (tam): *xtam +typequals.c:7:4: Operand of * is abstract type (tai): *xtai + +Finished LCLint checking --- 5 code errors found, as expected + +typequals.c: (in function f) +typequals.c:6:4: Operand of * is abstract type (tam): *xtam +typequals.c:7:4: Operand of * is abstract type (tai): *xtai + +Finished LCLint checking --- 2 code errors found, as expected diff --git a/test/ud.out b/test/ud.out index 43be362..6630a6d 100644 --- a/test/ud.out +++ b/test/ud.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. ud.c: (in function f) ud.c:8:7: Variable y used before definition ud.c:10:7: Variable z used before definition @@ -14,9 +12,10 @@ ud.c:56:7: Variable z5 used before definition Finished LCLint checking --- 9 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -Continuing without LCL init file: lclinit.lci -Continuing without LSL init file: lslinit.lsi -Unable to find CTrait.syms or CTrait.lsl. Check LARCH_PATH environment -variable. +ud2.c: (in function g) +ud2.c:9:6: Unallocated storage y passed as out parameter to f1: y +ud2.c: (in function h) +ud2.c:20:7: Passed storage &x not completely defined: f2 (&x) +ud2.c:23:7: Variable y used before definition + +Finished LCLint checking --- 3 code errors found, as expected diff --git a/test/ulstypes.out b/test/ulstypes.out index e39bf11..5b7c753 100644 --- a/test/ulstypes.out +++ b/test/ulstypes.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. ulstypes.c:3:23: Contradictory long and short type qualifiers ulstypes.c: (in function f) ulstypes.c:10:12: Function f expects arg 1 to be unsigned int gets long int: li @@ -15,13 +13,8 @@ ulstypes.c:20:19: Variable x3 initialized to type int, expects unsigned int: Finished LCLint checking --- 8 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. - Finished LCLint checking --- no code errors found -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. ulstypes.c:3:23: Contradictory long and short type qualifiers ulstypes.c: (in function f) ulstypes.c:7:19: Variable loli initialized to type int, expects long int: 12 diff --git a/test/union.out b/test/union.out index 9cfa640..da6edcf 100644 --- a/test/union.out +++ b/test/union.out @@ -1,5 +1,25 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -union.c:10:52: Old style declaration uses unlisted parameter: smalloc -*** Cannot continue. +union.c: (in function ut_create1) +union.c:16:10: Returned union *u has no defined field +union.c: (in function ut_create4) +union.c:40:3: Implicitly temp storage t assigned to implicitly only: u->ox = t +union.c: (in function ut_create5) +union.c:48:3: Implicitly temp storage t assigned to dependent: u->dx = t +union.c: (in function ut_create6) +union.c:57:10: Returned storage u->st contains 2 undefined fields: b, ip +union.c: (in function ut_create7) +union.c:66:3: Implicitly temp storage p assigned to implicitly only: + u->st.ip = p +union.c: (in function ut_mangle1) +union.c:73:2: Released storage u->ox reachable from parameter at return point + union.c:72:9: Storage u->ox is released +union.c: (in function ut_mangle2) +union.c:78:2: Released storage u->st.ip reachable from parameter at return + point + union.c:77:9: Storage u->st.ip is released +union.c: (in function ut_mangle3) +union.c:84:2: Released storage u->st.ip reachable from parameter at return + point + union.c:82:9: Storage u->st.ip is released + +Finished LCLint checking --- 8 code errors found, as expected diff --git a/test/unreachable.out b/test/unreachable.out index caec51c..98f1c59 100644 --- a/test/unreachable.out +++ b/test/unreachable.out @@ -1,8 +1,6 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. unreachable.c: (in function f) -unreachable.c:5:3: Unrecognized identifier: exit +unreachable.c:6:4: Unreachable code: x++ unreachable.c: (in function tu) unreachable.c:21:7: Unreachable code: return unreachable.c: (in function s) @@ -12,12 +10,18 @@ unreachable.c:45:4: Unreachable code: z++ Finished LCLint checking --- 5 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. -unreachable.c: (in function f) -unreachable.c:5:3: Unrecognized identifier: exit unreachable.c: (in function s) unreachable.c:34:10: Fall through case (no preceding break) unreachable.c:46:2: Path with no return in function declared to return int -Finished LCLint checking --- 3 code errors found, expected 2 +Finished LCLint checking --- 2 code errors found, as expected + +switch.c: (in function f3) +switch.c:31:2: Path with no return in function declared to return int +switch.c: (in function f5) +switch.c:49:6: Missing case in switch: THREE +switch.c:50:2: Path with no return in function declared to return int +switch.c: (in function f6) +switch.c:70:2: Path with no return in function declared to return int + +Finished LCLint checking --- 4 code errors found, as expected diff --git a/test/unused.out b/test/unused.out index 62ece57..4e4a1ba 100644 --- a/test/unused.out +++ b/test/unused.out @@ -1,6 +1,4 @@ -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. unused.c:13:6: Name _inner is in the implementation name space (any identifier beginning with underscore) unused.c:14:2: Name _st is in the implementation name space (any identifier @@ -12,8 +10,6 @@ unused.c:16:12: Function undef exported but not declared in header file Finished LCLint checking --- 5 code errors found, as expected -Cannot find standard library: ansi.lcd - Check LARCH_PATH environment variable. unused.c:13:6: Name _inner is in the implementation name space (any identifier beginning with underscore) unused.c:14:2: Name _st is in the implementation name space (any identifier