<86>Mar 15 13:40:55 userdel[968649]: delete user 'rooter' <86>Mar 15 13:40:55 groupadd[968672]: group added to /etc/group: name=rooter, GID=687 <86>Mar 15 13:40:55 groupadd[968672]: group added to /etc/gshadow: name=rooter <86>Mar 15 13:40:55 groupadd[968672]: new group: name=rooter, GID=687 <86>Mar 15 13:40:55 useradd[968692]: new user: name=rooter, UID=687, GID=687, home=/root, shell=/bin/bash <86>Mar 15 13:40:55 userdel[968725]: delete user 'builder' <86>Mar 15 13:40:55 userdel[968725]: removed group 'builder' owned by 'builder' <86>Mar 15 13:40:55 userdel[968725]: removed shadow group 'builder' owned by 'builder' <86>Mar 15 13:40:55 groupadd[968748]: group added to /etc/group: name=builder, GID=688 <86>Mar 15 13:40:55 groupadd[968748]: group added to /etc/gshadow: name=builder <86>Mar 15 13:40:55 groupadd[968748]: new group: name=builder, GID=688 <86>Mar 15 13:40:55 useradd[968755]: new user: name=builder, UID=688, GID=688, home=/usr/src, shell=/bin/bash <13>Mar 15 13:40:58 rpmi: flex-2.6.4.0.88.9801-alt1 sisyphus+221902.2300.4.1 1550596430 installed Building target platforms: i586 Building for target i586 Wrote: /usr/src/in/nosrpm/splint-3.1.2-alt2.qa1.nosrc.rpm Installing splint-3.1.2-alt2.qa1.src.rpm Building target platforms: i586 Building for target i586 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.1617 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf splint-3.1.2 + echo 'Source #0 (splint-3.1.2.src.tar.bz2):' Source #0 (splint-3.1.2.src.tar.bz2): + /bin/bzip2 -dc /usr/src/RPM/SOURCES/splint-3.1.2.src.tar.bz2 + /bin/tar -xf - + cd splint-3.1.2 + /bin/chmod -c -Rf u+rwX,go-w . + install -p -m644 /usr/src/RPM/SOURCES/manual.html /usr/src/RPM/SOURCES/manual.ps.bz2 /usr/src/RPM/SOURCES/faq.html . + install -p -m644 /usr/src/RPM/SOURCES/splint-COPYRIGHT COPYRIGHT + echo 'Patch #0 (splint-3.1.1-alt-man-hidden_links_fix.patch):' Patch #0 (splint-3.1.1-alt-man-hidden_links_fix.patch): + /usr/bin/patch -p1 patching file doc/splint.1 + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.75591 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd splint-3.1.2 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' + export FFLAGS + '[' -n '' ']' ++ printf %s '-pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic' ++ sed -r 's/(^|[[:space:]]+)-[^m][^[:space:]]*//g' + ASFLAGS=' -march=i586 -mtune=generic' + export ASFLAGS + export lt_cv_deplibs_check_method=pass_all + lt_cv_deplibs_check_method=pass_all + readlink -e -- ./configure + xargs -ri dirname -- '{}' + xargs -ri find '{}' -type f '(' -name config.sub -or -name config.guess ')' -printf '%h/\n' + sort -u + xargs -rn1 install -pm755 -- /usr/share/gnu-config/config.sub /usr/share/gnu-config/config.guess + ./configure --build=i586-alt-linux --host=i586-alt-linux --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var/lib --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --disable-silent-rules --without-included-gettext checking build system type... i586-alt-linux-gnu checking host system type... i586-alt-linux-gnu checking target system type... i586-alt-linux-gnu checking for a BSD-compatible install... /bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for i586-alt-linux-gcc... i586-alt-linux-gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether i586-alt-linux-gcc accepts -g... yes checking for i586-alt-linux-gcc option to accept ANSI C... none needed checking for style of include used by make... GNU checking dependency style of i586-alt-linux-gcc... none checking how to run the C preprocessor... i586-alt-linux-gcc -E checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for a BSD-compatible install... /bin/install -c checking whether make sets $(MAKE)... (cached) yes checking whether ln -s works... yes checking for bison... bison checking for grep... grep checking for diff... diff checking for cat... cat checking for rm... rm checking for mv... mv checking for cp... cp checking for sed... sed checking whether we need _ALL_SOURCE to expose mode_t... no checking whether to include support for LCL files... yes configure: creating ./config.status config.status: creating Makefile config.status: creating imports/Makefile config.status: creating lib/Makefile config.status: creating src/Makefile config.status: creating test/Makefile config.status: creating doc/Makefile config.status: creating bin/Makefile config.status: creating config.h config.status: executing depfiles commands + make make: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2' make all-recursive make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2' Making all in src make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/src' grep "FLG_" flags.def > Headers/flag_codes.gen make make[3]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/src' Compiling cgrammar.c... Compiling cscanner.c... Compiling mtscanner.c... Compiling mtgrammar.c... Compiling llgrammar.c... Compiling signature.c... Compiling cppmain.c... Compiling cpplib.c... cpplib.c: In function 'do_defineAux': cpplib.c:2907:16: warning: variable 'hn' set but not used [-Wunused-but-set-variable] hashNode hn; ^~ cpplib.c: In function 'do_xifdef': cpplib.c:5543:25: warning: increment of a boolean expression [-Wbool-operation] pfile->no_macro_expand++; ^~ cpplib.c:5545:25: warning: decrement of a boolean expression [-Wbool-operation] pfile->no_macro_expand--; ^~ Compiling cppexp.c... cppexp.c: In function 'cppexp_lex': cppexp.c:493:7: warning: variable 'token_buffer' set but not used [-Wunused-but-set-variable] char token_buffer[MAX_LONG_TYPE_SIZE/MAX_CHAR_TYPE_SIZE + 1]; ^~~~~~~~~~~~ Compiling cpphash.c... cpphash.c:101:13: warning: 'hashNode_delete' defined but not used [-Wunused-function] static void hashNode_delete (/*@only@*/ /*@null@*/ hashNode node) ^~~~~~~~~~~~~~~ Compiling cpperror.c... cpperror.c:160:1: warning: 'cppReader_unparseLoc' defined but not used [-Wunused-function] cppReader_unparseLoc (cppReader *pfile) ^~~~~~~~~~~~~~~~~~~~ Compiling context.c... context.c: In function 'setModuleAccess': context.c:3463:9: warning: variable 'hasaccess' set but not used [-Wunused-but-set-variable] bool hasaccess = FALSE; ^~~~~~~~~ Compiling uentry.c... uentry.c: In function 'uentry_getMods': uentry.c:5819:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ uentry.c: In function 'uentry_undump': uentry.c:5061:10: warning: 'ue' may be used uninitialized in this function [-Wmaybe-uninitialized] return (ue); ^ Compiling cprim.c... Compiling macrocache.c... Compiling qual.c... Compiling qtype.c... Compiling stateClause.c... Compiling stateClauseList.c... Compiling ctype.c... In file included from ctype.c:42: ctbase.i:2549:1: warning: 'ctbase_isKind2' defined but not used [-Wunused-function] ctbase_isKind2 (/*@notnull@*/ ctbase c, ctuid kind1, ctuid kind2) ^~~~~~~~~~~~~~ ctbase.i:2385:1: warning: 'ctbase_getBaseType' defined but not used [-Wunused-function] ctbase_getBaseType (/*@notnull@*/ ctbase c) ^~~~~~~~~~~~~~~~~~ ctbase.i:702:1: warning: 'ctbase_unparseNotypes' defined but not used [-Wunused-function] ctbase_unparseNotypes (ctbase c) ^~~~~~~~~~~~~~~~~~~~~ ctbase.i:428:1: warning: 'ctbase_isBaseUA' defined but not used [-Wunused-function] ctbase_isBaseUA (ctbase c) ^~~~~~~~~~~~~~~ ctbase.i:398:1: warning: 'ctbase_typeBaseUid' defined but not used [-Wunused-function] ctbase_typeBaseUid (ctbase c) ^~~~~~~~~~~~~~~~~~ Compiling cvar.c... Compiling clabstract.c... clabstract.c: In function 'clabstract_globalDeclareFunction': clabstract.c:620:9: warning: variable 'rettype' set but not used [-Wunused-but-set-variable] ctype rettype; ^~~~~~~ clabstract.c: In function 'declareStaticFunction': clabstract.c:853:14: warning: variable 'rettype' set but not used [-Wunused-but-set-variable] ctype rettype; ^~~~~~~ clabstract.c: In function 'fixUentryList': clabstract.c:1089:8: warning: variable 'rt' set but not used [-Wunused-but-set-variable] ctype rt; ^~ clabstract.c: In function 'processVariable': clabstract.c:1444:15: warning: variable 'loc' set but not used [-Wunused-but-set-variable] fileloc loc; ^~~ clabstract.c:1416:9: warning: variable 'ct' set but not used [-Wunused-but-set-variable] ctype ct; ^~ Compiling idDecl.c... Compiling clause.c... Compiling globalsClause.c... Compiling modifiesClause.c... Compiling warnClause.c... Compiling functionClause.c... Compiling functionClauseList.c... Compiling metaStateConstraint.c... Compiling metaStateConstraintList.c... Compiling metaStateExpression.c... Compiling metaStateSpecifier.c... Compiling functionConstraint.c... Compiling pointers.c... Compiling cscannerHelp.c... cscannerHelp.c: In function 'cscannerHelp_handleSpecial': cscannerHelp.c:652:10: warning: variable 'len_yyt' set but not used [-Wunused-but-set-variable] size_t len_yyt; ^~~~~~~ cscannerHelp.c: In function 'cscannerHelp_processString': cscannerHelp.c:1892:13: warning: variable 'lastnl' set but not used [-Wunused-but-set-variable] char *lastnl = nl; ^~~~~~ cscannerHelp.c: In function 'cscannerHelp_processWideString': cscannerHelp.c:1933:13: warning: variable 'lastnl' set but not used [-Wunused-but-set-variable] char *lastnl = nl; ^~~~~~ cscannerHelp.c: In function 'cscannerHelp_processMacro': cscannerHelp.c:2169:8: warning: variable 'isenditer' set but not used [-Wunused-but-set-variable] bool isenditer = FALSE; ^~~~~~~~~ Compiling structNames.c... Compiling transferChecks.c... Compiling varKinds.c... Compiling nameChecks.c... Compiling exprData.c... Compiling cstring.c... Compiling fileloc.c... Compiling message.c... Compiling inputStream.c... Compiling fileTable.c... fileTable.c: In function 'makeTempName': fileTable.c:934:10: warning: variable 'maxlen' set but not used [-Wunused-but-set-variable] size_t maxlen; ^~~~~~ Compiling cstringTable.c... Compiling valueTable.c... Compiling stateValue.c... Compiling llerror.c... Compiling messageLog.c... Compiling flagMarker.c... Compiling aliasTable.c... aliasTable.c: In function 'aliasTable_canAliasAux': aliasTable.c:491:14: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] ret = sRefSet_union (ret, s->values[ind]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compiling ynm.c... Compiling sRefTable.c... Compiling genericTable.c... Compiling ekind.c... Compiling usymtab.c... usymtab.c: In function 'usymtab_handleParams': usymtab.c:2295:12: warning: variable 'osrs' set but not used [-Wunused-but-set-variable] sRefSet osrs = sRefSet_undefined; ^~~~ usymtab.c: In function 'usymtab_enterFunctionScope': usymtab.c:2421:15: warning: variable 'ue' set but not used [-Wunused-but-set-variable] uentry ue; ^~ usymtab.c: In function 'usymtab_checkFinalScope': usymtab.c:3922:7: warning: variable 'nval' set but not used [-Wunused-but-set-variable] int nval; ^~~~ usymtab.c: In function 'usymtab_load': usymtab.c:2043:14: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result [-Wunused-result] (void) fgets (s, MAX_DUMP_LINE_LENGTH, f); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compiling multiVal.c... Compiling lltok.c... Compiling sRef.c... sRef.c: In function 'whatUndefined': sRef.c:4821:12: warning: variable 'hasOneDefined' set but not used [-Wunused-but-set-variable] bool hasOneDefined = FALSE; ^~~~~~~~~~~~~ At top level: sRef.c:2186:1: warning: 'sRef_closeEnough' defined but not used [-Wunused-function] sRef_closeEnough (sRef s1, sRef s2) ^~~~~~~~~~~~~~~~ sRef.c:728:1: warning: 'sRef_getExpInfoLoc' defined but not used [-Wunused-function] sRef_getExpInfoLoc (/*@exposed@*/ sRef s) ^~~~~~~~~~~~~~~~~~ sRef.c:318:13: warning: 'sRef_checkValidAux' defined but not used [-Wunused-function] static void sRef_checkValidAux (sRef s, sRefSet checkedsofar) ^~~~~~~~~~~~~~~~~~ sRef.c: In function 'sRef_copy': sRef.c:5879:15: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] t->info = sinfo_copy (s); ~~~~~~~~^~~~~~~~~~~~~~~~ sRef.c: In function 'sRef_mergeStateQuietReverse': sRef.c:3684:17: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] res->info = sinfo_fullCopy (other); ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ sRef.c: In function 'sRef_unparseKindName': sRef.c:7077:11: warning: 'result' may be used uninitialized in this function [-Wmaybe-uninitialized] cstring result; ^~~~~~ sRef.c: In function 'sRef_unparseKindNamePlain': sRef.c:7157:11: warning: 'result' may be used uninitialized in this function [-Wmaybe-uninitialized] cstring result; ^~~~~~ Compiling lcllib.c... Compiling randomNumbers.c... Compiling fileLib.c... Compiling globals.c... Compiling flags.c... flags.c: In function 'argcode_unparse': flags.c:151:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Compiling general.c... Compiling osd.c... Compiling reader.c... Compiling mtreader.c... Compiling clauseStack.c... Compiling filelocStack.c... Compiling cstringList.c... Compiling cstringSList.c... Compiling sRefSetList.c... Compiling ctypeList.c... Compiling enumNameList.c... Compiling enumNameSList.c... Compiling exprNodeList.c... Compiling exprNodeSList.c... Compiling uentryList.c... Compiling fileIdList.c... Compiling filelocList.c... Compiling qualList.c... Compiling sRefList.c... Compiling flagMarkerList.c... Compiling idDeclList.c... Compiling flagSpec.c... Compiling globSet.c... Compiling intSet.c... Compiling typeIdSet.c... Compiling guardSet.c... guardSet.c: In function 'guardSet_delete': guardSet.c:70:8: warning: variable 'res' set but not used [-Wunused-but-set-variable] bool res; ^~~ Compiling usymIdSet.c... Compiling sRefSet.c... sRefSet.c: In function 'sRefSet_copyInto': sRefSet.c:427:7: warning: variable 'origentries' set but not used [-Wunused-but-set-variable] int origentries; ^~~~~~~~~~~ Compiling stateInfo.c... stateInfo.c: In function 'stateAction_unparse': stateInfo.c:462:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ stateInfo.c: In function 'stateAction_fromNState': stateInfo.c:316:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ stateInfo.c: In function 'stateAction_fromSState': stateInfo.c:411:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ Compiling stateCombinationTable.c... Compiling metaStateTable.c... Compiling metaStateInfo.c... Compiling annotationTable.c... Compiling annotationInfo.c... Compiling mttok.c... Compiling mtDeclarationNode.c... mtDeclarationNode.c: In function 'mtDeclarationNode_process': mtDeclarationNode.c:644:12: warning: 'mkind' may be used uninitialized in this function [-Wmaybe-uninitialized] if (metaStateInfo_getDefaultValueContext (msinfo, mkind) != stateValue_error) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compiling mtDeclarationPieces.c... Compiling mtDeclarationPiece.c... Compiling mtContextNode.c... Compiling mtValuesNode.c... Compiling mtDefaultsNode.c... Compiling mtAnnotationsNode.c... Compiling mtMergeNode.c... Compiling mtAnnotationList.c... Compiling mtAnnotationDecl.c... Compiling mtTransferClauseList.c... Compiling mtTransferClause.c... Compiling mtTransferAction.c... Compiling mtLoseReferenceList.c... Compiling mtLoseReference.c... Compiling mtDefaultsDeclList.c... Compiling mtDefaultsDecl.c... Compiling mtMergeItem.c... Compiling mtMergeClause.c... Compiling mtMergeClauseList.c... Compiling exprNode.c... exprNode.c: In function 'exprNode_loopMustExec': exprNode.c:7723:28: warning: variable 'inc' set but not used [-Wunused-but-set-variable] exprNode init, test, inc; ^~~ exprNode.c: In function 'exprNode_rootVarName': exprNode.c:9412:11: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] cstring ret; ^~~ In file included from Headers/basic.h:81, from exprNode.c:30: exprNode.c: In function 'exprNode_switch': Headers/enumNameSList.h:25:35: warning: 'usedEnums' may be used uninitialized in this function [-Wmaybe-uninitialized] # define enumNameSList_addh(s,el) enumNameList_addh(s, el) ^~~~~~~~~~~~~~~~~ exprNode.c:7205:17: note: 'usedEnums' was declared here enumNameSList usedEnums; ^~~~~~~~~ exprNode.c:7259:10: warning: 'enums' may be used uninitialized in this function [-Wmaybe-uninitialized] if (enumNameList_member (/*@-usedef@*/enums/*@=usedef@*/, cname)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exprNode.c:7206:16: note: 'enums' was declared here enumNameList enums; ^~~~~ exprNode.c: In function 'checkArgsReal': exprNode.c:1599:15: warning: 'expecttype' may be used uninitialized in this function [-Wmaybe-uninitialized] ctype expecttype; ^~~~~~~~~~ Compiling exprChecks.c... Compiling llmain.c... llmain.c:85:13: warning: 'describeVars' declared 'static' but never defined [-Wunused-function] static void describeVars (void); ^~~~~~~~~~~~ llmain.c:86:13: warning: 'specialFlagsHelp' declared 'static' but never defined [-Wunused-function] static bool specialFlagsHelp (char *p_next); ^~~~~~~~~~~~~~~~ Compiling help.c... Compiling rcfiles.c... Compiling constraintList.c... Compiling constraintResolve.c... constraintResolve.c: In function 'fileloc_closer': constraintResolve.c:1574:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if (fileloc_equal (loc1, loc2) ) ^~ constraintResolve.c:1577:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' if (fileloc_equal (loc1, loc3) ) ^~ Compiling constraintGeneration.c... constraintGeneration.c: In function 'doFor': constraintGeneration.c:517:12: warning: variable 'init' set but not used [-Wunused-but-set-variable] exprNode init, test, inc; ^~~~ constraintGeneration.c: In function 'doSwitch': constraintGeneration.c:826:12: warning: variable 'body' set but not used [-Wunused-but-set-variable] exprNode body; ^~~~ constraintGeneration.c: In function 'exprNode_multiStatement': constraintGeneration.c:842:8: warning: variable 'ret' set but not used [-Wunused-but-set-variable] bool ret; ^~~ constraintGeneration.c: In function 'exprNode_traverseTrueEnsuresConstraints': constraintGeneration.c:1596:8: warning: variable 'handledExprNode' set but not used [-Wunused-but-set-variable] bool handledExprNode; ^~~~~~~~~~~~~~~ constraintGeneration.c: In function 'exprNode_traverseFalseEnsuresConstraints': constraintGeneration.c:1732:8: warning: variable 'handledExprNode' set but not used [-Wunused-but-set-variable] bool handledExprNode; ^~~~~~~~~~~~~~~ constraintGeneration.c: In function 'exprNode_traverseRequiresConstraints': constraintGeneration.c:1867:8: warning: variable 'handledExprNode' set but not used [-Wunused-but-set-variable] bool handledExprNode; ^~~~~~~~~~~~~~~ constraintGeneration.c: In function 'exprNode_traverseEnsuresConstraints': constraintGeneration.c:2002:8: warning: variable 'handledExprNode' set but not used [-Wunused-but-set-variable] bool handledExprNode; ^~~~~~~~~~~~~~~ Compiling constraintTerm.c... constraintTerm.c: In function 'constraintTerm_dump': constraintTerm.c:550:23: warning: variable 'value' set but not used [-Wunused-but-set-variable] constraintTermValue value; ^~~~~ constraintTerm.c:549:11: warning: variable 'loc' set but not used [-Wunused-but-set-variable] fileloc loc; ^~~ Compiling constraintExprData.c... Compiling constraintExpr.c... constraintExpr.c: In function 'isZeroBinaryOp': constraintExpr.c:131:35: warning: variable 'op' set but not used [-Wunused-but-set-variable] constraintExprBinaryOpKind op; ^~ constraintExpr.c: In function 'removeZero': constraintExpr.c:152:18: warning: variable 'expr1' set but not used [-Wunused-but-set-variable] constraintExpr expr1, expr2; ^~~~~ constraintExpr.c: At top level: constraintExpr.c:47:1: warning: 'doSRefFixInvarConstraintTerm' declared 'static' but never defined [-Wunused-function] doSRefFixInvarConstraintTerm (/*@only@*/ constraintExpr p_e, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ constraintExpr.c: In function 'constraintExpr_undump': constraintExpr.c:2329:10: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] return ret; ^~~ Compiling constraint.c... Compiling loopHeuristics.c... loopHeuristics.c: In function 'canGetForTimes': loopHeuristics.c:121:12: warning: variable 'init' set but not used [-Wunused-but-set-variable] exprNode init, test, inc, t1, t2; ^~~~ loopHeuristics.c: In function 'getForTimes': loopHeuristics.c:186:12: warning: variable 'init' set but not used [-Wunused-but-set-variable] exprNode init, test, inc, t1, t2; ^~~~ loopHeuristics.c: In function 'constraintExpr_searchAndAdd': loopHeuristics.c:293:15: warning: variable 'cPrint' set but not used [-Wunused-but-set-variable] cstring cPrint; ^~~~~~ loopHeuristics.c: In function 'forLoopHeuristicsImpl': loopHeuristics.c:407:12: warning: variable 'init' set but not used [-Wunused-but-set-variable] exprNode init, test, inc; ^~~~ loopHeuristics.c: In function 'isInc': loopHeuristics.c:445:22: warning: variable 't1' set but not used [-Wunused-but-set-variable] constraintExpr t1, t2; ^~ Compiling lsymbolSet.c... Compiling sigNodeSet.c... Compiling lslOpSet.c... Compiling sortSet.c... Compiling initDeclNodeList.c... Compiling sortList.c... Compiling declaratorInvNodeList.c... Compiling interfaceNodeList.c... Compiling sortSetList.c... Compiling declaratorNodeList.c... Compiling letDeclNodeList.c... Compiling stDeclNodeList.c... Compiling storeRefNodeList.c... Compiling lslOpList.c... Compiling lsymbolList.c... Compiling termNodeList.c... Compiling ltokenList.c... Compiling traitRefNodeList.c... Compiling pairNodeList.c... Compiling typeNameNodeList.c... Compiling fcnNodeList.c... Compiling paramNodeList.c... Compiling programNodeList.c... Compiling varDeclarationNodeList.c... Compiling varNodeList.c... Compiling quantifierNodeList.c... Compiling replaceNodeList.c... Compiling importNodeList.c... Compiling tokentable.c... Compiling scan.c... scan.c:102:1: warning: 'LSLScanLookAhead' defined but not used [-Wunused-function] LSLScanLookAhead (void) ^~~~~~~~~~~~~~~~ Compiling scanline.c... Compiling lslparse.c... Compiling lh.c... Compiling checking.c... Compiling lclctypes.c... Compiling imports.c... imports.c: In function 'processImport': imports.c:169:9: warning: variable 'tmpbufptr' set but not used [-Wunused-but-set-variable] char *tmpbufptr; ^~~~~~~~~ imports.c:167:36: warning: variable 'lclsource' set but not used [-Wunused-but-set-variable] inputStream imported, imported2, lclsource; ^~~~~~~~~ Compiling lslinit.c... lslinit.c:62:13: warning: 'InitFile' declared 'static' but never defined [-Wunused-function] static void InitFile (void) /*@modifies nextToken@*/ ; ^~~~~~~~ Compiling syntable.c... Compiling usymtab_interface.c... usymtab_interface.c:194:7: warning: 'convertCTypeExpr' defined but not used [-Wunused-function] ctype convertCTypeExpr (ctype c, typeExpr x) ^~~~~~~~~~~~~~~~ usymtab_interface.c: In function 'convertLclTypeSpecNode': usymtab_interface.c:555:16: warning: 'result' may be used uninitialized in this function [-Wmaybe-uninitialized] result = qtype_addQualList (result, n->quals); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Compiling abstract.c... abstract.c: In function 'LCLBootstrap': abstract.c:268:8: warning: variable 's' set but not used [-Wunused-but-set-variable] sort s; ^ abstract.c: In function 'makeLetDeclNode': abstract.c:970:11: warning: variable 'termsort' set but not used [-Wunused-but-set-variable] sort s, termsort; ^~~~~~~~ abstract.c: In function 'globalList_toPairNodeList': abstract.c:5313:11: warning: variable 'sym' set but not used [-Wunused-but-set-variable] lsymbol sym; ^~~ At top level: abstract.c:2207:1: warning: 'printTypeExpr2' defined but not used [-Wunused-function] printTypeExpr2 (/*@null@*/ typeExpr x) ^~~~~~~~~~~~~~ In file included from Headers/basic.h:61, from abstract.c:38: abstract.c: In function 'checkAndEnterTag': Headers/llerror.h:163:4: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized] xlclerror (__FILE__, __LINE__, p_t, p_msg) ^~~~~~~~~ abstract.c:5230:16: note: 's' was declared here cstring s; ^ Compiling ltoken.c... Compiling lclscanline.c... Compiling lclsyntable.c... Compiling lcltokentable.c... Compiling sort.c... sort.c: In function 'sp': sort.c:2222:7: warning: variable 'temp_length' set but not used [-Wunused-but-set-variable] int temp_length; ^~~~~~~~~~~ sort.c: In function 'sort_import': sort.c:2908:15: warning: variable 'lclsource' set but not used [-Wunused-but-set-variable] inputStream lclsource; ^~~~~~~~~ At top level: sort.c:3178:1: warning: 'sort_hasStateFcns' defined but not used [-Wunused-function] sort_hasStateFcns (sort s) ^~~~~~~~~~~~~~~~~ sort.c:2313:1: warning: 'underlyingSortNode' defined but not used [-Wunused-function] underlyingSortNode (sortNode sn) ^~~~~~~~~~~~~~~~~~ sort.c:2305:1: warning: 'underlyingSortName' defined but not used [-Wunused-function] underlyingSortName (sortNode sn) ^~~~~~~~~~~~~~~~~~ Compiling symtable.c... symtable.c: In function 'symHashTable_dump': symtable.c:747:10: warning: variable 'size' set but not used [-Wunused-but-set-variable] int i, size; ^~~~ symtable.c: In function 'symtable_import': symtable.c:1391:15: warning: variable 'lclsource' set but not used [-Wunused-but-set-variable] inputStream lclsource; ^~~~~~~~~ Compiling lclinit.c... lclinit.c: In function 'TokenClass': lclinit.c:450:10: warning: variable 'tokenClassToken' set but not used [-Wunused-but-set-variable] ltoken tokenClassToken; ^~~~~~~~~~~~~~~ Compiling shift.c... Compiling lclscan.c... lclscan.c:157:1: warning: 'LCLScanLookAhead' defined but not used [-Wunused-function] LCLScanLookAhead (void) ^~~~~~~~~~~~~~~~ Compiling lsymbol.c... Compiling mapping.c... i586-alt-linux-gcc -pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic -o splint cgrammar.o cscanner.o mtscanner.o mtgrammar.o llgrammar.o signature.o cppmain.o cpplib.o cppexp.o cpphash.o cpperror.o context.o uentry.o cprim.o macrocache.o qual.o qtype.o stateClause.o stateClauseList.o ctype.o cvar.o clabstract.o idDecl.o clause.o globalsClause.o modifiesClause.o warnClause.o functionClause.o functionClauseList.o metaStateConstraint.o metaStateConstraintList.o metaStateExpression.o metaStateSpecifier.o functionConstraint.o pointers.o cscannerHelp.o structNames.o transferChecks.o varKinds.o nameChecks.o exprData.o cstring.o fileloc.o message.o inputStream.o fileTable.o cstringTable.o valueTable.o stateValue.o llerror.o messageLog.o flagMarker.o aliasTable.o ynm.o sRefTable.o genericTable.o ekind.o usymtab.o multiVal.o lltok.o sRef.o lcllib.o randomNumbers.o fileLib.o globals.o flags.o general.o osd.o reader.o mtreader.o clauseStack.o filelocStack.o cstringList.o cstringSList.o sRefSetList.o ctypeList.o enumNameList.o enumNameSList.o exprNodeList.o exprNodeSList.o uentryList.o fileIdList.o filelocList.o qualList.o sRefList.o flagMarkerList.o idDeclList.o flagSpec.o globSet.o intSet.o typeIdSet.o guardSet.o usymIdSet.o sRefSet.o stateInfo.o stateCombinationTable.o metaStateTable.o metaStateInfo.o annotationTable.o annotationInfo.o mttok.o mtDeclarationNode.o mtDeclarationPieces.o mtDeclarationPiece.o mtContextNode.o mtValuesNode.o mtDefaultsNode.o mtAnnotationsNode.o mtMergeNode.o mtAnnotationList.o mtAnnotationDecl.o mtTransferClauseList.o mtTransferClause.o mtTransferAction.o mtLoseReferenceList.o mtLoseReference.o mtDefaultsDeclList.o mtDefaultsDecl.o mtMergeItem.o mtMergeClause.o mtMergeClauseList.o exprNode.o exprChecks.o llmain.o help.o rcfiles.o constraintList.o constraintResolve.o constraintGeneration.o constraintTerm.o constraintExprData.o constraintExpr.o constraint.o loopHeuristics.o lsymbolSet.o sigNodeSet.o lslOpSet.o sortSet.o initDeclNodeList.o sortList.o declaratorInvNodeList.o interfaceNodeList.o sortSetList.o declaratorNodeList.o letDeclNodeList.o stDeclNodeList.o storeRefNodeList.o lslOpList.o lsymbolList.o termNodeList.o ltokenList.o traitRefNodeList.o pairNodeList.o typeNameNodeList.o fcnNodeList.o paramNodeList.o programNodeList.o varDeclarationNodeList.o varNodeList.o quantifierNodeList.o replaceNodeList.o importNodeList.o tokentable.o scan.o scanline.o lslparse.o lh.o checking.o lclctypes.o imports.o lslinit.o syntable.o usymtab_interface.o abstract.o ltoken.o lclscanline.o lclsyntable.o lcltokentable.o sort.o symtable.o lclinit.o shift.o lclscan.o lsymbol.o mapping.o -lfl rm -f ../bin/splint ln -s ../src/splint ../bin/splint make all-am make[4]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/src' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/src' make[3]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/src' cd ../lib; make make[3]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' ../src/splint -nof -nolib +impconj standard.h -dump standard Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h -dump standardstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj standard.h posix.h -dump posix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h posix.h -dump posixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj standard.h posix.h unix.h stdio.h stdlib.h -dump unix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj -DSTRICT standard.h posix.h unix.h stdio.h stdlib.h -dump unixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings make[3]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' rm -f ../bin/splint ln -s ../src/splint ../bin/splint make all-am make[3]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/src' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/src' make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/src' Making all in lib make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' ../src/splint -nof -nolib +impconj standard.h -dump standard Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h -dump standardstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj standard.h posix.h -dump posix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h posix.h -dump posixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj standard.h posix.h unix.h stdio.h stdlib.h -dump unix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj -DSTRICT standard.h posix.h unix.h stdio.h stdlib.h -dump unixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' Making all in imports make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/imports' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/imports' Making all in test make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/test' Testing splint 3.1.2... Version Info: Splint 3.1.2 --- 15 Mar 2020 Maintainer: splint-bug@splint.org Compiled using i586-alt-linux-gcc -pipe -frecord-gcc-switches -Wall -g -O2 -march=i586 -mtune=generic on Linux localhost.localdomain 4.19.97-std-def-alt1 #1 SMP Sat Jan 18 11:27:14 UTC 2020 i686 GNU/Linux by builder Splint 3.1.2 --- 15 Mar 2020 LARCH_PATH = (default = .:/usr/share/splint/lib:/usr/src/RPM/BUILD/spl int-3.1.2/lib:) --- path used to find larch initialization files and LSL traits LCLIMPORTDIR = --- directory containing lcl standard library files (import with < ... >) include path = (set by environment variable CPATH and -I flags) --- path used to find #include'd files systemdirs = /usr/ (set by -systemdirs or environment variable CPATH) --- if file is found on this path, it is treated as a system file for error reporting Tests: Checking help... Checking abstptr... 2,12c2 < 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 checking --- no code warnings, expected 9 14,25c4 < Finished checking --- 9 code warnings, 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 checking --- 6 code warnings, as expected --- > Finished checking --- no code warnings, expected 6 *** FAIL *** Checking abstract... 2,22c2 < 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 checking --- 15 code warnings, as expected --- > Finished checking --- no code warnings, expected 15 *** FAIL *** Checking alias... 4,33c4 < alias.c: (in function f) < alias.c:11:3: Possible undocumented modification of *a through alias *x: *x = 3 < alias.c:14:3: Possible undocumented modification of *a through alias *y: *y = 4 < alias.c:16:3: Undocumented modification of globp: globp = a < alias.c:17:25: Function returns with global variable globp aliasing parameter a < alias.c:21:7: Undocumented modification of globp: globp = z < alias.c:21:15: Variable z used before definition < alias.c:25:3: Undocumented modification of *globp: *globp = 4 < alias.c:25:3: Possible undocumented modification of *a through alias *globp: < *globp = 4 < alias.c:28:3: Possible undocumented modification of *globp through alias *x: < *x = 7 < alias.c:28:3: Possible undocumented modification of *a through alias *x: *x = 7 < alias.c:31:3: Possible undocumented modification of glob through alias *x: < *x = 4 < alias.c:38:3: Possible undocumented modification of **c through alias *x: < *x = 4 < alias.c:40:3: Possible undocumented modification of **c through alias *a: < *a = 4 < alias.c:41:3: Undocumented modification of *globp: *globp = 3 < alias.c:41:3: Possible undocumented modification of *a through alias *globp: < *globp = 3 < alias.c:42:12: Function returns with global variable globp aliasing parameter a < alias.c: (in function h) < alias.c:49:3: Undocumented modification of a possible from call to mut_mod: < mut_mod(a) < alias.c:51:3: Undocumented modification of b possible from call to mut_mod < (through alias a): mut_mod(a) < alias.c:55:12: Owned storage b not released before return < alias.c:52:3: Storage b becomes owned --- > Finished checking --- no code warnings, expected 19 35c6 < Finished checking --- 19 code warnings, as expected --- > Finished checking --- no code warnings, expected 17 37,97c8 < alias2.c: (in function f) < alias2.c:17:3: Variable lx used before definition < alias2.c:20:7: Possible undocumented modification of *a through alias *lx: < *lx = 4 < alias2.c:29:7: Possible undocumented modification of *a through alias *x: < *x = 3 < alias2.c:34:7: Possible undocumented modification of **c through alias *x: < *x = 3 < alias2.c:38:3: Possible undocumented modification of *a through alias *x: < *x = 4 < alias2.c:38:3: Possible undocumented modification of **c through alias *x: < *x = 4 < alias2.c:41:8: Undocumented modification of **c: **c = b < alias2.c:43:7: Possible undocumented modification of glob through alias *y: < *y = 3 < alias2.c:43:7: Possible undocumented modification of *globp through alias *y: < *y = 3 < alias2.c:44:7: Undocumented modification of globp: globp = a < alias2.c:53:3: Possible undocumented modification of glob through alias *a: < *a = 3 < alias2.c:53:3: Undocumented modification of *a: *a = 3 < alias2.c:54:3: Possible undocumented modification of *globp through alias *z: < *z = 6 < alias2.c:54:3: Possible undocumented modification of *a through alias *z: < *z = 6 < alias2.c:55:3: Undocumented modification of *globp: *globp = 5 < alias2.c:55:3: Possible undocumented modification of *a through alias *globp: < *globp = 5 < alias2.c:56:12: Function returns with global variable globp aliasing parameter < a < < Finished checking --- 17 code warnings, as expected < < alias3.c: (in function model) < alias3.c:16:3: Undocumented modification of gst.a: gst.a = 3 < alias3.c:17:3: Undocumented modification of gu->a: gu->a = 5 < alias3.c: (in function f) < alias3.c:38:3: Possible undocumented modification of ia[3] through alias *ip: < *ip = 7 < alias3.c:42:3: Possible undocumented modification of ia[] through alias *ip: < *ip = 8 < alias3.c:44:3: Undocumented modification of ia[6] possible from call to model: < model(ia) < alias3.c:46:3: Undocumented modification of ia[6] possible from call to model < (through alias ip[6]): model(ip) < alias3.c:49:3: Undocumented modification of *(s1.b): *(s1.b) = 7 < alias3.c:52:3: Undocumented modification of *(s1.b) possible from call to modst < (through alias *(sl.b)): modst(sl) < alias3.c:56:3: Undocumented modification of *(s1.b): *(s1.b) = 3 < alias3.c:57:3: Possible undocumented modification of *(s1.b) through alias *ip: < *ip = 6 < alias3.c:58:3: Possible undocumented modification of *(s1.b) through alias < *(sl.b): *(sl.b) = 3 < alias3.c:61:3: Undocumented modification of *u1 possible from call to modu < (through alias *ul): modu(ul) < alias3.c:62:3: Possible undocumented modification of u1->a through alias ul->a: < ul->a = 3 < alias3.c:65:3: Possible undocumented modification of *(u1->s.b) through alias < *(sl.b): *(sl.b) = 6 < < Finished checking --- 14 code warnings, as expected --- > Finished checking --- no code warnings, expected 14 101,124c12 < alias4.c: (in function f) < alias4.c:15:10: Function may return reference to parameter a through alias c: c < alias4.c:15:10: Function may return reference to parameter b through alias c: c < alias4.c: (in function h) < alias4.c:26:12: Function returns reference to global glob: &glob < alias4.c:28:12: Function returns reference to global globp: globp < alias4.c:30:12: Function returns reference to global globs: (globs.field) < alias4.c:32:12: Function returns reference to global globs: (&(globs.val)) < < Finished checking --- 6 code warnings, as expected < < alias5.c: (in function incx1) < alias5.c:13:3: Possible undocumented modification of p->x through alias p2->x: < p2->x++ < alias5.c: (in function incx2) < alias5.c:22:2: Fresh storage p2 not released before return < alias5.c:20:3: Fresh storage p2 created < alias5.c: (in function incx3) < alias5.c:27:3: Only storage p2->x (type int *) not released before assignment: < p2->x = p->x < alias5.c:28:3: Possible undocumented modification of *(p->x) through alias < *(p2->x): *(p2->x) = 3 < alias5.c:30:2: Storage p->x reachable from parameter is kept (should be only) < alias5.c:27:3: Storage p->x becomes kept --- > Finished checking --- no code warnings, expected 6 126c14 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking alttypes... 2,11c2 < 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) < alttypes.c:17:20: Previous declaration of f2: int | void < alttypes.c:25:20: Variable x inconsistently redeclared with alternate types int < | char (types match, but alternates are not identical, so checking may not < be correct) < alttypes.c:24:33: Previous declaration of x: int | char | bool < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking ansireserved... 2,20c2 < ansireserved.c:9: Name EVANS is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < ansireserved.c:1:5: Name decimal_point is reserved for the standard library < ansireserved.c:2:5: Name srand is reserved for the standard library < 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) < ansireserved.c:5:5: Name atan2f is reserved for future library extensions. The < names of all existing functions in suffixed with 'f' or 'l' may be < added to . (ISO:7.26.1) < ansireserved.c:7:13: Name wcst is reserved for future library extensions. < Functions that begin with "mem" or "wcs" and a lowercase letter may be < added to . (ISO:7.26.11) < ansireserved.c:11:5: Name isaFish is reserved for future library extensions. < Functions beginning with "is" or "to" and a lowercase letter may be added < to . (ISO99:7.26.2) < ansireserved.c: (in function isaFish) < ansireserved.c:16:20: Name wctomb is reserved for the standard library --- > Finished checking --- no code warnings, expected 9 22c4 < Finished checking --- 9 code warnings, as expected --- > Finished checking --- no code warnings, expected 11 24,48c6 < ansireserved.c:9: Name EVANS is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < ansireserved.c:1:5: Name decimal_point is reserved for the standard library < ansireserved.c:2:5: Name srand is reserved for the standard library < 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) < ansireserved.c:5:5: Name atan2f is reserved for future library extensions. The < names of all existing functions in suffixed with 'f' or 'l' may be < added to . (ISO:7.26.1) < ansireserved.c:7:13: Name wcst is reserved for future library extensions. < Functions that begin with "mem" or "wcs" and a lowercase letter may be < added to . (ISO:7.26.11) < ansireserved.c:11:5: Name isaFish is reserved for future library extensions. < Functions beginning with "is" or "to" and a lowercase letter may be added < to . (ISO99:7.26.2) < ansireserved.c: (in function isaFish) < ansireserved.c:13:20: Name powl is reserved for future library extensions. The < names of all existing functions in suffixed with 'f' or 'l' may be < added to . (ISO:7.26.1) < ansireserved.c:15:22: Name memory is reserved for future library extensions. < Functions that begin with "mem" or "wcs" and a lowercase letter may be < added to . (ISO:7.26.11) < ansireserved.c:16:20: Name wctomb is reserved for the standard library --- > Finished checking --- no code warnings, expected 12 50,82c8,9 < Finished checking --- 11 code warnings, as expected < < ansireserved.c:9: Name EVANS is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < 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 standard.lcd: Specification of srand as function: < [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 standard.lcd: Specification of labs as function: < [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) < ansireserved.c:5:5: Name atan2f is reserved for future library extensions. The < names of all existing functions in suffixed with 'f' or 'l' may be < added to . (ISO:7.26.1) < ansireserved.c:7:13: Name wcst is reserved for future library extensions. < Functions that begin with "mem" or "wcs" and a lowercase letter may be < added to . (ISO:7.26.11) < ansireserved.c:11:5: Name isaFish is reserved for future library extensions. < Functions beginning with "is" or "to" and a lowercase letter may be added < to . (ISO99:7.26.2) < 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 checking --- 12 code warnings, as expected < < ansireserved2.c:4:2: Name _s1 is in the implementation name space (any < identifier beginning with underscore) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/ansireserved2.c is a > considered a system file. No errors in this file will be reported. *** FAIL *** Checking argorder... 2,68c2,3 < argorder.c: (in function f) < 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 < evaluation of actual parameters is undefined): f((i++, j++), (i = 3), j) < argorder.c:10:25: Argument 2 modifies i, used by argument 1 (order of < evaluation of actual parameters is undefined): f((i++, j++), (i = 3), j) < < Finished checking --- 4 code warnings, as expected < < 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 checking --- 5 code warnings, 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 checking --- 8 code warnings, 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... --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/argorder.c is a > considered a system file. No errors in this file will be reported. 70c5 < Finished checking --- 9 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 72,73c7,8 < argorder4.c: (in function h) < argorder4.c:35:10: Unreachable code: return (add((pri... --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/argorder2.c is a > considered a system file. No errors in this file will be reported. 75c10,18 < Finished checking --- 1 code warning, as expected --- > Finished checking --- 1 code warning, expected 5 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/argorder3.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, expected 8 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/argorder4.c is a > considered a system file. No errors in this file will be reported. 77,84c20,25 < 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 checking --- 1 code warning, expected 9 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/argorder4.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, as expected 86c27 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking args... 2,27c2 < 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 checking --- 12 code warnings, as expected --- > Finished checking --- no code warnings, expected 12 *** FAIL *** Checking arraydims... 2,5c2,3 < arraydims.c:3:3: Initializer block for daytab[1] has 14 elements, but declared < as int [13]: 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 52 < arraydims.c:8:5: Initializer block for daytab2[0][1] has 14 elements, but < declared as int [13]: 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 52 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/arraydims.c is a > considered a system file. No errors in this file will be reported. 7c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 9c7,10 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/arraydims.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking arrayinit... 2,19c2,3 < arrayinit.c:1:12: Initializer block for x has 4 elements, but declared as int < [3]: 1, 2, 3, 4 < arrayinit.c:2:12: Initializer block for a has 2 elements, but declared as int < [3]: 1, 2 < arrayinit.c:3:16: Initializer block for aa has 2 elements, but declared as int < [3][3]: { 1, 2, 3 }, { 4, 5 } < arrayinit.c:4:18: Initializer block for aa[1] has 2 elements, but declared as < int [3]: 4, 5 < arrayinit.c:10:15: String literal with 4 characters is assigned to char [3] (no < room for null terminator): "abc" < arrayinit.c:11:15: String literal with 5 characters (counting null terminator) < is assigned to char [3] (insufficient storage available): "abcd" < arrayinit.c:14:40: String literal with 4 characters is assigned to char [3] (no < room for null terminator): "def" < arrayinit.c:14:47: String literal with 6 characters (counting null terminator) < is assigned to char [3] (insufficient storage available): "gasdf" < arrayinit.c:17:22: Initializer block for a3[1] has 3 elements, but declared as < int [2]: 3, 4, 5 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/arrayinit.c is a > considered a system file. No errors in this file will be reported. 21c5 < Finished checking --- 9 code warnings, as expected --- > Finished checking --- 1 code warning, expected 9 *** FAIL *** Checking arraylit... 2,7c2 < arraylit.c: (in function main) < arraylit.c:7:34: String literal with 6 characters is assigned to char [5] (no < room for null terminator): "12345" < arraylit.c:13:3: Suspect modification of observer unmodstr[0]: < unmodstr[0] = 'U' < arraylit.c:5:24: Storage unmodstr[0] becomes observer --- > Finished checking --- no code warnings, expected 2 9,22c4 < Finished checking --- 2 code warnings, as expected < < arraylit.c: (in function main) < arraylit.c:6:38: String literal with 18 characters is assigned to char [20] < (possible waste of storage): "modifiable string" < arraylit.c:7:34: String literal with 6 characters is assigned to char [5] (no < room for null terminator): "12345" < arraylit.c:9:34: String literal with 6 characters is assigned to char [7] < (possible waste of storage): "12345" < arraylit.c:13:3: Suspect modification of observer unmodstr[0]: < unmodstr[0] = 'U' < arraylit.c:5:24: Storage unmodstr[0] becomes observer < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking blocks... 2,47c2,3 < 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 < modified by test or loop body. < blocks.c:21:16: Body of if clause of if statement is empty < blocks.c:22:9: Body of else clause of if statement is empty < < Finished checking --- 4 code warnings, as expected < < 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 < modified by test or loop body. < blocks.c:6:15: Body of if statement is not a block: x++; < blocks.c:16:12: Incomplete else if logic (no final else): if (x == 1) { x = 4; < } < blocks.c:19:8: Body of else clause of if statement is not a block: x = 4; < blocks.c:21:16: Body of if clause of if statement is empty < blocks.c:22:9: Body of else clause of if statement is empty < < Finished checking --- 7 code warnings, as expected < < 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 < modified by test or loop body. < blocks.c:7:18: Body of while statement is not a block: x++; < < Finished checking --- 3 code warnings, as expected < < 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. < blocks.c:12:23: Body of for statement is empty < blocks.c:13:23: Body of for statement is not a block: x++; < < Finished checking --- 3 code warnings, as expected < < 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 < blocks.c:4:10: Suspected infinite loop. No value used in loop test (x) is < modified by test or loop body. < blocks.c:12:23: Body of for statement is empty < blocks.c:21:16: Body of if clause of if statement is empty < blocks.c:22:9: Body of else clause of if statement is empty --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/blocks.c is a > considered a system file. No errors in this file will be reported. 49c5,25 < Finished checking --- 6 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/blocks.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, expected 7 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/blocks.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, expected 3 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/blocks.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, expected 3 > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/blocks.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, expected 6 *** FAIL *** Checking break... 2,8c2 < 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 < modified by test or loop body. < break.c:3:10: Suspected infinite loop. No value used in loop test (x) is < modified by test or loop body. < break.c:34:24: Break preceded by innerbreak is not in a deep loop --- > Finished checking --- no code warnings, expected 4 10c4 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 6 12,33c6 < 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 < break.c:21:8: Break statement in nested loop < break.c:17:14: Suspected infinite loop. No value used in loop test (x) is < modified by test or loop body. < break.c:3:10: Suspected infinite loop. No value used in loop test (x) is < modified by test or loop body. < break.c:34:24: Break preceded by innerbreak is not in a deep loop < < Finished checking --- 6 code warnings, as expected < < 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 < break.c:17:14: Suspected infinite loop. No value used in loop test (x) is < modified by test or loop body. < break.c:3:10: Suspected infinite loop. No value used in loop test (x) is < modified by test or loop body. < break.c:34:24: Break preceded by innerbreak is not in a deep loop < < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking cases... 2,7c2,3 < cases.c: (in function f) < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/cases.c is a > considered a system file. No errors in this file will be reported. 9c5 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- 1 code warning, expected 5 11,20c7 < 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:26:5: in one possible execution: < cases2.c:23:16: Storage x 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:37:5: in one possible execution: < cases2.c:36:16: Storage x released --- > Finished checking --- no code warnings, expected 2 22c9 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 24,46c11 < 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:26:5: in one possible execution: < cases2.c:23:16: Storage x 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:37:5: in one possible execution: < cases2.c:36:16: Storage x released < cases2.c:1:24: Function g declared but not defined < < Finished checking --- 3 code warnings, 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 checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking cast... 2,29c2,3 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/cast.c is a > considered a system file. No errors in this file will be reported. 31c5 < Finished checking --- 20 code warnings, as expected --- > Finished checking --- 1 code warning, expected 20 33,40c7 < 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 checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking chararraylit... 2,6c2,3 < chararraylit.c: (in function f) < chararraylit.c:8:16: String literal with 4 characters is assigned to char [3] < (no room for null terminator): "abc" < chararraylit.c:13:3: Suspect modification of observer p: *p = 'c' < chararraylit.c:9:13: Storage *p becomes observer --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/chararraylit.c is a > considered a system file. No errors in this file will be reported. 8c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking charlit... 2,10c2,9 < 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 < character constants to be used as ints. (This is safe since the actual type < of a char constant is int.) < charlit.c:6:7: Incompatible types for + (int, char): x + 'c' < charlit.c:8:10: Return value type char does not match declared type int: 'a' < charlit.c:12:14: Variable u initialized to type int, expects unsigned int: -3 < To ignore signs in type comparisons use +ignoresigns --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/charlit.c is a > considered a system file. No errors in this file will be reported. > Splint has been run on a system file, by default no errors are reported for > system files. Use +systemdirerrors if you want splint to report errors in > system files. A file is considered a system file if it is in a system > directory or a subdirectory of a system directory. The sysdirs flag can be > used to control the directories treated as system directories. (Use > -warnsysfiles to inhibit warning) 12c11 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 14,27c13,20 < 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 < character constants to be used as ints. (This is safe since the actual type < of a char constant is int.) < charlit.c:4:14: Variable z initialized to type int, expects double: 3 < An int literal is used as any numeric type (including float and long long). < Use +numliteral to allow int literals to be used as any numeric type. < charlit.c:6:7: Incompatible types for + (int, char): x + 'c' < charlit.c:8:10: Return value type char does not match declared type int: 'a' < charlit.c:11:18: Initial value of s[1] is type int, expects short int: -1 < To ignore type qualifiers in type comparisons use +ignorequals. < charlit.c:12:14: Variable u initialized to type int, expects unsigned int: -3 < To ignore signs in type comparisons use +ignoresigns --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/charlit.c is a > considered a system file. No errors in this file will be reported. > Splint has been run on a system file, by default no errors are reported for > system files. Use +systemdirerrors if you want splint to report errors in > system files. A file is considered a system file if it is in a system > directory or a subdirectory of a system directory. The sysdirs flag can be > used to control the directories treated as system directories. (Use > -warnsysfiles to inhibit warning) 29c22 < Finished checking --- 6 code warnings, as expected --- > Finished checking --- 1 code warning, expected 6 31,33c24,31 < charlit.c: (in function f) < charlit.c:6:3: Assignment of double to int: x = x + 'c' + 2 + z < To allow all numeric types to match, use +relaxtypes. --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/charlit.c is a > considered a system file. No errors in this file will be reported. > Splint has been run on a system file, by default no errors are reported for > system files. Use +systemdirerrors if you want splint to report errors in > system files. A file is considered a system file if it is in a system > directory or a subdirectory of a system directory. The sysdirs flag can be > used to control the directories treated as system directories. (Use > -warnsysfiles to inhibit warning) *** FAIL *** Checking clauses... 2,19c2 < clauses.c: (in function f) < clauses.c:6:5: Variable x is released in true branch, but live in continuation. < clauses.c:6:5: in true branch: < clauses.c:5:13: Storage x released < clauses.c:11:5: Variable y is released in while body, but live if loop is not < taken. < clauses.c:11:5: in while body: < clauses.c:10:13: Storage y released < clauses.c:20:5: Variable z2 is released in false branch, but live in true < branch. < clauses.c:20:5: in false branch: < clauses.c:19:13: Storage z2 released < clauses.c:20:5: Variable z is released in true branch, but live in false < branch. < clauses.c:20:5: in true branch: < clauses.c:15:13: Storage z released < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 23,39c6 < 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 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 released < < Finished checking --- 2 code warnings, as expected < < 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 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 released --- > Finished checking --- no code warnings, expected 2 41c8 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking commentchar... 2,7c2 < commentchar.c:14:1: Syntactic commentchar comment is not followed by a < whitespace character: 5 < commentchar.c:15:1: Cannot restore commentchar < commentchar.c:10:5: Variable x redefined < commentchar.c:6:5: Previous definition of x < commentchar.c:10:9: Variable x initialized to type char, expects int: 'c' --- > Finished checking --- no code warnings, expected 4 9,17c4 < Finished checking --- 4 code warnings, as expected < < commentchar.c:14:1: Syntactic commentchar comment is not followed by a < whitespace character: 5 < commentchar.c:15:1: Cannot restore commentchar < commentchar.c:1:26: Unrecognized identifier in modifies comment: x < commentchar.c:6:9: Variable x initialized to type char, expects int: 'c' < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking compdestroy... 2,4c2 < 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 checking --- no code warnings, expected 1 6c4 < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 2 8,27c6 < 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 checking --- 2 code warnings, 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[] possibly released < 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 checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking compoundliterals... Checking compoundstmt... 2,6c2,3 < compoundstmt.c: (in function main) < compoundstmt.c:9:3: Assignment of void value to int: j = ({ int __tmp; < __tmp = (5); fvoid(); }) < compoundstmt.c:5:15: Parameter argc not used < compoundstmt.c:5:28: Parameter argv not used --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/compoundstmt.c is a > considered a system file. No errors in this file will be reported. 8c5 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- 1 code warning, expected 3 *** FAIL *** Checking condifomit... 2,19c2 < condifomit.c: (in function cond1) < condifomit.c:11:6: Conditionals with Omitted Operands is not supported by ISO < C99 < condifomit.c: (in function cond2) < condifomit.c:17:9: Conditionals with Omitted Operands is not supported by ISO < C99 < condifomit.c: (in function test_use_before_definition) < condifomit.c:27:17: Variable i used before definition < condifomit.c:27:17: Conditionals with Omitted Operands is not supported by ISO < C99 < < Finished checking --- 4 code warnings, as expected < < Command Line: Setting +gnuextensions redundant with current value < condifomit.c: (in function test_use_before_definition) < condifomit.c:27:17: Variable i used before definition < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking constannot... 2,17c2 < constannot.c: (in function foo2) < constannot.c:11:3: Possible out-of-bounds store: str[20] < Unable to resolve constraint: < requires maxSet(str @ constannot.c:11:3) >= 20 < needed to satisfy precondition: < requires maxSet(str @ constannot.c:11:3) >= 20 < constannot.c: (in function foo3) < constannot.c:20:3: Likely out-of-bounds store: foo(buf) < Unable to resolve constraint: < requires <= 19 < needed to satisfy precondition: < requires maxSet(buf @ constannot.c:20:8) >= < derived from foo precondition: requires maxSet() >= < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking controldepth... 2,6c2,9 < controldepth.c: (in function f) < controldepth.c:8:15: Maximum control nesting depth (2) exceeded < Maximum number of control levels exceeded. (Use -controlnestdepth to inhibit < warning) < controldepth.c:15:17: Maximum control nesting depth (2) exceeded --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/controldepth.c is a > considered a system file. No errors in this file will be reported. > Splint has been run on a system file, by default no errors are reported for > system files. Use +systemdirerrors if you want splint to report errors in > system files. A file is considered a system file if it is in a system > directory or a subdirectory of a system directory. The sysdirs flag can be > used to control the directories treated as system directories. (Use > -warnsysfiles to inhibit warning) 8c11 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 10,14c13,20 < controldepth.c: (in function f) < controldepth.c:6:15: Maximum control nesting depth (1) exceeded < Maximum number of control levels exceeded. (Use -controlnestdepth to inhibit < warning) < controldepth.c:11:13: Maximum control nesting depth (1) exceeded --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/controldepth.c is a > considered a system file. No errors in this file will be reported. > Splint has been run on a system file, by default no errors are reported for > system files. Use +systemdirerrors if you want splint to report errors in > system files. A file is considered a system file if it is in a system > directory or a subdirectory of a system directory. The sysdirs flag can be > used to control the directories treated as system directories. (Use > -warnsysfiles to inhibit warning) 16c22 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking csyntax... 1,2c1,2 < csyntax.c:20:5: Function main declared with 1 arg, should have 2 (int argc, < char *argv[]) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax.c is a > considered a system file. No errors in this file will be reported. 4,23c4,41 < csyntax2.c: (in function mapping_create) < 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) < < csyntax3.c:3:4: Function main declared to return a1, should return int < < csyntax13.c: (in function f) < csyntax13.c:9:11: Variable isrs shadows outer declaration < csyntax13.c:7:9: Previous definition of isrs: isr_t < < csyntax16.c: (in function main) < csyntax16.c:18:11: Variable getbuiltout used before definition < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax2.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax3.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax4.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax5.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax6.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax7.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax8.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax9.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax10.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax11.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax12.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax15.c is a > considered a system file. No errors in this file will be reported. > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/csyntax17.c is a > considered a system file. No errors in this file will be reported. *** FAIL *** Checking czechnames... 4,11c4 < 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. (Use either < -czechvars or -namechecks to inhibit warning) < 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. < (Use either -czechfcns or -namechecks to inhibit warning) --- > Finished checking --- no code warnings, expected 2 13c6 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 1 15,43c8 < 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. < (Use either -czechfcns or -namechecks to inhibit warning) < < Finished checking --- 1 code warning, as expected < < 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 _. < 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. (Use either < -czechvars or -namechecks to inhibit warning) < czechnames.c:8:17: Constant pivo_devenast 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 _. < czechnames.c:11:6: Function pivo_yedno 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 _. < czechnames.c: (in function pivo_yedno) < czechnames.c:15:11: Left operand of == is abstract type (pivo): p == 1 < An abstraction barrier is broken. If necessary, use /*@access @*/ to < allow access to an abstract type. (Use -abstract to inhibit warning) < czechnames.c:26:5: Function budweiser name is not consistent with Czech naming < convention. Accessible types: pivo < < Finished checking --- 6 code warnings, as expected --- > Finished checking --- no code warnings, expected 6 *** FAIL *** Checking czechoslovaknames... 2,5c2 < czechnames.c:26:5: Function budweiser name is not consistent with Czechoslovak < naming convention. < Function name is not consistent with Czechoslovak naming convention. (Use < either -czechoslovakfcns or -namechecks to inhibit warning) --- > Finished checking --- no code warnings, expected 1 7c4 < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 9,25c6 < slovaknames.c:32:5: Function budweiser name is not consistent with Czechoslovak < naming convention. < Function name is not consistent with Czechoslovak naming convention. (Use < either -czechoslovakfcns or -namechecks to inhibit warning) < < Finished checking --- 1 code warning, as expected < < slovaknames.c:5:5: Variable michelobLight name violates Slovak naming < convention. Slovak prefix michelob is not the name of a type. < Variable name is not consistent with Slovak naming convention. (Use either < -slovakvars or -namechecks to inhibit warning) < slovaknames.c:32:5: Function budweiser name is not consistent with Czechoslovak < naming convention. < Function name is not consistent with Czechoslovak naming convention. (Use < either -czechoslovakfcns or -namechecks to inhibit warning) < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking deadparam... 2,10c2 < deadparam.c: (in function t) < deadparam.c:7:6: Dead storage s1 passed as out parameter to f: s1 < deadparam.c:6:9: Storage s1 released < deadparam.c:10:6: Dead storage s2 passed as special parameter to g: s2 < deadparam.c:9:9: Storage s2 released < deadparam.c:10:6: Allocated storage s2 corresponds to storage listed in < allocates clause of called function: s2 < < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking decl... 2,6c2 < 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 checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 23,33c19 < 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 checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking divzero... 2c2,5 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/divzero.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking enum... 2,35c2,3 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/enum.c is a > considered a system file. No errors in this file will be reported. 37c5 < Finished checking --- 16 code warnings, as expected --- > Finished checking --- 1 code warning, expected 16 39,70c7,8 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/enum.c is a > considered a system file. No errors in this file will be reported. 72c10 < Finished checking --- 14 code warnings, as expected --- > Finished checking --- 1 code warning, expected 14 *** FAIL *** Checking enumtag... 2,6c2,3 < enumtag.c:35:6: Enum tag enum e_tag defined more than once < enumtag.c:12:6: Previous definition of enum e_tag < enumtag.c:35:6: Enum enum e_tag declared with members { E_M } but previously < declared with members { E_X, E_Y, E_Z } < enumtag.c:12:6: Declaration of enum e_tag --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/enumtag.c is a > considered a system file. No errors in this file will be reported. 8c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking exports... 3,10c3 < 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 < exports.h:1:13: Type myint declared but not used < exports.h:3:12: Variable glob declared but not used < exports.c:3:5: Definition of glob < exports.h:5:12: Function f declared but not used < exports.c:8:1: Definition of f --- > Finished checking --- no code warnings, expected 6 12,18c5 < Finished checking --- 6 code warnings, as expected < < 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 checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking external... 4,9c4 < 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 < external.c:8:5: External identifier longfunction2 is not distinguishable from < longfunction1 in the first 6 characters (longfu) < external.c:7:5: Declaration of longfunction1 --- > Finished checking --- no code warnings, expected 2 11c6 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 13,21c8 < 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:8:5: External identifier longfunction2 is not distinguishable from < longfunction1 in the first 3 characters (lon) < external.c:7:5: Declaration of longfunction1 --- > Finished checking --- no code warnings, expected 3 23,52c10 < Finished checking --- 3 code warnings, as expected < < 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:8:5: External identifier longfunction2 is not distinguishable from < longfunction1 in the first 3 characters (lon) < external.c:7:5: Declaration of longfunction1 < < Finished checking --- 3 code warnings, as expected < < 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 standard.lcd: Specification of LONG_MAX < One or more additional indistinguishable external names not reported < external.c:8:5: External identifier longfunction2 is not distinguishable from < LONG_MAX in the first 3 characters because alphabetical case is ignored < load file standard.lcd: Specification of LONG_MAX < One or more additional indistinguishable external names not reported < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking fields... 2,22c2 < 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 (through alias p->y) < 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 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 checking --- no code warnings, expected 6 24,42c4 < Finished checking --- 6 code warnings, 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 checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking flags... 2,6d1 < 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' 10,34c5 < flags.c:11:5: < Internal identifier < xx2 is not < distinguishable < from xx1 in the < first 2 characters < (xx) < flags.c:10:5: < Declaration of < xx1 < flags.c:13:4: < Semantic comment < attempts to restore < flag linelen. A < flag for setting a < value cannot be < restored. < flags.c:15:4: Semantic comment attempts to set global flag dump. A < global flag cannot be set locally. < flags.c:16:22: Flag macrovarprefix (in semantic comment) must be < followed by an argument < flags.c:17:26: Flag macrovarprefix (in semantic comment) must be < followed by an argument < flags.c:18:20: Flag linelen must be followed by a positive number < number. Followed by asdf --- > Finished checking --- no code warnings, expected 8 36,41c7 < Finished checking --- 8 code warnings, as expected < < 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' < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking forbody... 2,6c2 < forbody.c: (in iter genericTable_elements) < forbody.c:3:50: Unrecognized identifier in macro definition: m_ind < forbody.c:3:115: Assignment of char to int: m_el = 'a' < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking format... 2,8c2,3 < format.c: (in function fn) < format.c:3:3: Format string parameter to printf is not a compile-time constant: < fmt < format.c:5:3: Format string parameter to fprintf is not a compile-time < constant: fmt < format.c:6:3: Format string parameter to fprintf is not a compile-time < constant: fmt --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/format.c is a > considered a system file. No errors in this file will be reported. 10,12c5 < Finished checking --- 3 code warnings, as expected < < Finished checking --- no warnings --- > Finished checking --- 1 code warning, expected 3 *** FAIL *** Checking freearray... 2,6c2 < freearray.c: (in function destroyMod2) < freearray.c:22:9: Only storage *stringTable (type ocp) derived from released < storage is not released (memory leak): stringTable < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking funcpointer... 2,32c2 < funcpointer.c: (in function func2) < 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) < funcpointer.c:28:3: Assignment of [function (void) returns int] to f1: < t1 = func1 < funcpointer.c:29:3: Assignment of [function (void) returns int ***] to f1: < t1 = func4 < funcpointer.c:33:3: Assignment of [function (void) returns int *] to f2: < t2 = func2 < funcpointer.c:36:3: Assignment of [function (void) returns int **] to f3 *: < t3p = func3 < funcpointer.c:38:3: Assignment of [function (void) returns int *] to f4 *: < t4 = func2 < funcpointer.c:41:7: Call to non-function (type f1): (t1) < funcpointer.c:43:3: Assignment of int *** to int *: xp = (*t1)() < funcpointer.c:44:8: Call to non-function (type f4 *): (t4) < funcpointer.c:46:3: Assignment of [function (void) returns int] to f6: < t6 = func1 < funcpointer.c:46:3: Invalid left-hand side of assignment (function type f6): t6 < funcpointer.c:47:3: Invalid left-hand side of assignment (function type f6): t6 < funcpointer.c:48:10: Function (t6) called with 0 args, expects 2 < 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 checking --- 18 code warnings, as expected --- > Finished checking --- no code warnings, expected 18 *** FAIL *** Checking functionmacro... 2,7c2 < functionmacro.c: (in function blah) < functionmacro.c:7:3: Assignment of size_t to int: len = strlen(__FUNCTION__) < functionmacro.c: (in function main) < functionmacro.c:19:2: Path with no return in function declared to return int < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking glob... 2,8c2,3 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/glob.c is a > considered a system file. No errors in this file will be reported. 10c5 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 12,16c7,8 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/glob.c is a > considered a system file. No errors in this file will be reported. 18c10 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- 1 code warning, expected 3 20,29c12,13 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/glob.c is a > considered a system file. No errors in this file will be reported. 31c15 < Finished checking --- 6 code warnings, as expected --- > Finished checking --- 1 code warning, expected 6 *** FAIL *** Checking globals... 2,8c2 < 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) < globals.c:13:3: Undocumented use of global checkstrict < globals.c: (in function specglobs) < globals.c:19:3: Undocumented use of global check < globals.c:21:3: Undocumented use of global checkstrict --- > Finished checking --- no code warnings, expected 5 10c4 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 6 12,19c6 < 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) < globals.c:13:3: Undocumented use of global checkstrict < globals.c: (in function specglobs) < globals.c:18:3: Undocumented use of global imp < globals.c:19:3: Undocumented use of global check < globals.c:21:3: Undocumented use of global checkstrict --- > Finished checking --- no code warnings, expected 6 21c8 < Finished checking --- 6 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 23,30c10 < 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) < globals.c:13:3: Undocumented use of global checkstrict < globals.c: (in function specglobs) < globals.c:18:3: Undocumented use of global imp < globals.c:19:3: Undocumented use of global check < globals.c:21:3: Undocumented use of global checkstrict --- > Finished checking --- no code warnings, expected 6 32,61c12 < Finished checking --- 6 code warnings, as expected < < globals.c:5:41: Redundant checked qualifier on doubled < globals.c:6:46: Contradictory checked and unchecked qualifiers on contradict < < Finished checking --- 2 code warnings, as expected < < 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) < globals.c:11:3: Undocumented use of global check < globals.c:13:3: Undocumented use of global checkstrict < globals.c: (in function specglobs) < globals.c:19:3: Undocumented use of global check < globals.c:21:3: Undocumented use of global checkstrict < < Finished checking --- 6 code warnings, as expected < < 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) < globals.c:10:3: Undocumented use of global imp < globals.c:11:3: Undocumented use of global check < globals.c:13:3: Undocumented use of global checkstrict < globals.c: (in function specglobs) < globals.c:18:3: Undocumented use of global imp < globals.c:19:3: Undocumented use of global check < globals.c:21:3: Undocumented use of global checkstrict < < Finished checking --- 8 code warnings, as expected --- > Finished checking --- no code warnings, expected 8 *** FAIL *** Checking impabstract... 4,10c4 < 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 < allow access to an abstract type. (Use -abstract to inhibit warning) < impabstract.c:13:14: Return value type mint does not match declared type int: m < Underlying types match, but mint is an abstract type that is not accessible < here. --- > Finished checking --- no code warnings, expected 2 12,33c6 < Finished checking --- 2 code warnings, as expected < < 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. (Use -mutrep to inhibit warning) < impabstract.c:2:28: Datatype cint inconsistently declared as concrete type < A function, variable or constant is redefined with a different type. (Use < -incondefs to inhibit warning) < 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. (Use -abstract to inhibit warning) < 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 checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking info... 2,10c2,3 < info.c: (in function huppy_bug) < info.c:3:3: Unrecognized identifier: i < info.c:6:57: Unrecognized pre-processor directive: < #info "LcLint ignores all code that follows this line!" < info.c: (in function unhuppy_bug) < info.c:10:3: Observer storage assigned to unqualified reference: i = "Asdf" < info.c:10:7: Storage becomes observer < info.c:1:13: File static function huppy_bug declared but not used < info.c:4:1: Definition of huppy_bug --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/info.c is a > considered a system file. No errors in this file will be reported. 12c5 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 *** FAIL *** Checking init... 2,18c2,3 < 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 < 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 } --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/init.c is a > considered a system file. No errors in this file will be reported. 20c5 < Finished checking --- 14 code warnings, as expected --- > Finished checking --- 1 code warning, expected 14 22,44c7,8 < 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 } --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/init.c is a > considered a system file. No errors in this file will be reported. 46c10 < Finished checking --- 17 code warnings, as expected --- > Finished checking --- 1 code warning, expected 17 *** FAIL *** Checking innerarray... 2,23c2 < innerarray.c: (in function fn) < innerarray.c:4:12: Parameter arr not used < innerarray.c:9:13: Function parameter arr is incomplete type (inner array must < have bounds): int [10][] < innerarray.c: (in function fn2) < innerarray.c:9:13: Parameter arr not used < innerarray.c:14:13: Function parameter arr is incomplete type (inner array must < have bounds): int [][] < innerarray.c: (in function fn3) < innerarray.c:14:13: Parameter arr not used < innerarray.c: (in function fn4) < innerarray.c:19:13: Parameter arr not used < innerarray.c:24:13: Function parameter arr is incomplete type (inner array must < have bounds): int [][10][][4] < innerarray.c: (in function fn5) < innerarray.c:24:13: Parameter arr not used < innerarray.c: (in function main) < innerarray.c:33:13: Passed storage array not completely defined (*array is < undefined): fn (array) < innerarray.c:32:7: Variable array2 declared but not used < < Finished checking --- 10 code warnings, as expected --- > Finished checking --- no code warnings, expected 10 *** FAIL *** Checking inparam... 2,6c2 < inparam.c: (in function f) < inparam.c:8:16: Passed storage x not completely defined (*x is undefined): < unknown (x) < inparam.c:12:16: Passed storage x not completely defined (*x is undefined): < inparam (x) --- > Finished checking --- no code warnings, expected 2 8,14c4 < Finished checking --- 2 code warnings, as expected < < inparam.c: (in function f) < inparam.c:12:16: Passed storage x not completely defined (*x is undefined): < inparam (x) < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking internal... 2,4c2 < internal.c: (in function f1) < internal.c:21:9: Variable e1 shadows outer declaration < internal.c:12:7: Previous definition of e1: int --- > Finished checking --- no code warnings, expected 1 6c4 < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 8,10c6 < internal.c: (in function f1) < internal.c:21:9: Variable e1 shadows outer declaration < internal.c:12:7: Previous definition of e1: int --- > Finished checking --- no code warnings, expected 2 12c8 < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 3 14,20c10 < internal.c:4:5: Internal identifier iwonderhowmanycharactersaresignificant2 is < not distinguishable from iwonderhowmanycharactersaresignificant1 in the < first 31 characters (iwonderhowmanycharactersaresign) < internal.c:3:5: Declaration of iwonderhowmanycharactersaresignificant1 < internal.c: (in function f1) < internal.c:21:9: Variable e1 shadows outer declaration < internal.c:12:7: Previous definition of e1: int --- > Finished checking --- no code warnings, expected 3 22,84c12 < Finished checking --- 2 code warnings, as expected < < internal.c:4:5: Internal identifier iwonderhowmanycharactersaresignificant2 is < not distinguishable from iwonderhowmanycharactersaresignificant1 in the < first 28 characters (iwonderhowmanycharactersares) < internal.c:3:5: Declaration of iwonderhowmanycharactersaresignificant1 < internal.c:6:5: Internal identifier manycharactersaresignificant2 is not < distinguishable from manycharactersaresignificant1 in the first 28 < characters (manycharactersaresignificant) < internal.c:5:5: Declaration of manycharactersaresignificant1 < internal.c: (in function f1) < internal.c:21:9: Variable e1 shadows outer declaration < internal.c:12:7: Previous definition of e1: int < < Finished checking --- 3 code warnings, as expected < < internal.c: (in function f1) < internal.c:15:8: Internal identifier Alphabet is not distinguishable from < alphabet without case sensitivity < internal.c:14:7: Declaration of alphabet < internal.c:21:9: Variable e1 shadows outer declaration < internal.c:12:7: Previous definition of e1: int < internal.c:23:11: Internal identifier lcAse is not distinguishable from lcase < without case sensitivity < internal.c:18:7: Declaration of lcase < < Finished checking --- 3 code warnings, as expected < < internal.c:10:6: Internal identifier f1 is not distinguishable from fl except < by lookalike characters < internal.c:8:12: Declaration of fl < internal.c: (in function f1) < internal.c:13:9: Internal identifier el is not distinguishable from e1 except < by lookalike characters < internal.c:12:7: Declaration of e1 < internal.c:15:8: Internal identifier Alphabet is not distinguishable from < alphabet without case sensitivity < internal.c:14:7: Declaration of alphabet < internal.c:17:8: Internal identifier alphabetlsoup is not distinguishable from < alphabet1soup except by lookalike characters < internal.c:16:7: Declaration of alphabet1soup < internal.c:21:9: Variable e1 shadows outer declaration < internal.c:12:7: Previous definition of e1: int < internal.c:21:9: Internal identifier e1 is not distinguishable from el except < by lookalike characters < internal.c:13:9: Declaration of el < internal.c:22:9: Internal identifier a1phabet is not distinguishable from < alphabet except by lookalike characters < internal.c:14:7: Declaration of alphabet < internal.c:23:11: Internal identifier lcAse is not distinguishable from lcase < without case sensitivity < internal.c:18:7: Declaration of lcase < internal.c:25:9: Internal identifier sS2 is not distinguishable from s52 except < by lookalike characters < internal.c:24:9: Declaration of s52 < internal.c:26:9: Internal identifier s5Z is not distinguishable from s52 except < by lookalike characters < internal.c:24:9: Declaration of s52 < internal.c:28:9: Internal identifier num0 is not distinguishable from numO < except by lookalike characters < internal.c:27:9: Declaration of numO < < Finished checking --- 11 code warnings, as expected --- > Finished checking --- no code warnings, expected 11 *** FAIL *** Checking iter... 3,26d2 < 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 < 28,50c4 < 14 code warnings, 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) --- > no code warnings, expected 14 52c6 < Finished checking --- 12 code warnings, as expected --- > Finished checking --- no code warnings, expected 12 *** FAIL *** Checking keep... 2,23c2 < keep.c: (in function f2) < keep.c:12:9: Keep storage passed as only param: free (x) < keep.c:10:26: Storage x becomes keep < keep.c: (in function f3) < keep.c:19:27: Keep storage x not transferred before return < keep.c:15:25: Storage x becomes keep < keep.c: (in function f5) < keep.c:36:10: Keep storage x not transferred before return < keep.c:34:39: Storage x becomes keep < keep.c: (in function f6) < keep.c:44:5: Variable x is kept in true branch, but not kept in continuation. < keep.c:44:5: in true branch: < keep.c:43:11: Storage x becomes kept < keep.c:44:5: in continuation: < keep.c:39:26: Storage x becomes keep < keep.c:46:7: Kept storage x passed as keep param: f2 (x) < keep.c:44:5: Storage x becomes kept < keep.c: (in function f7) < keep.c:60:10: Kept storage x returned as implicitly only: x < keep.c:58:5: Storage x becomes kept < < Finished checking --- 6 code warnings, as expected --- > Finished checking --- no code warnings, expected 6 *** FAIL *** Checking libs... 2,35c2 < 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: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 checking --- no code warnings, expected 18 37c4 < Finished checking --- 18 code warnings, as expected --- > Finished checking --- no code warnings, expected 22 39,76c6 < 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 checking --- no code warnings, expected 25 78,199c8 < Finished checking --- 22 code warnings, 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 checking --- 25 code warnings, 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: Called procedure getc may access global errno < libs.c:34:7: Undocumented modification of *f possible from call to getc: < getc(f) < libs.c:34:7: Undocumented modification of errno 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 checking --- 44 code warnings, as expected --- > Finished checking --- no code warnings, expected 44 *** FAIL *** Checking linked... 2,80c2 < linked.c: (in function node_free1) < linked.c:10:9: Only storage n->next (type node) derived from released storage < is not released (memory leak): n < linked.c: (in function node_free2) < linked.c:17:2: Only storage nn not released before return < linked.c:16:9: Storage nn becomes only < linked.c:15:8: Variable nn declared but not used < linked.c: (in function node_free3) < linked.c:23:15: Possibly null storage nn passed as non-null param: < node_free1 (nn) < linked.c:21:13: Storage nn may become null < < Finished checking --- 4 code warnings, as expected < < linked2.c: (in function node_free2) < linked2.c:15:8: Variable nn declared but not used < linked2.c: (in function node_free3) < linked2.c:23:15: Possibly null storage nn passed as non-null param: < node_free1 (nn) < linked2.c:21:13: Storage nn may become null < linked2.c:23:15: Dependent storage nn passed as only param: node_free1 (nn) < linked2.c:23:15: Storage nn becomes dependent (through alias n->next) < < Finished checking --- 3 code warnings, as expected < < linked3.c: (in function node_free1) < linked3.c:10:9: Only storage n->val (type char *) derived from released storage < is not released (memory leak): n < linked3.c:10:9: Only storage n->next (type node) derived from released storage < is not released (memory leak): n < linked3.c: (in function node_free2) < linked3.c:16:9: Only storage n->val (type char *) derived from released storage < is not released (memory leak): n < linked3.c:17:2: Only storage nn not released before return < linked3.c:16:9: Storage nn becomes only < linked3.c:15:8: Variable nn declared but not used < < Finished checking --- 5 code warnings, as expected < < linked4.c: (in function node_free1) < linked4.c:14:9: Only storage n->val (type item) derived from released storage < is not released (memory leak): n < linked4.c:14:9: Only storage n->next (type node) derived from released storage < is not released (memory leak): n < linked4.c: (in function node_free2) < linked4.c:20:9: Only storage n->val (type item) derived from released storage < is not released (memory leak): n < linked4.c:21:2: Only storage nn not released before return < linked4.c:20:9: Storage nn becomes only < linked4.c:19:8: Variable nn declared but not used < linked4.c: (in function node_free3) < linked4.c:26:9: Only storage n->val->val (type char *) derived from released < storage is not released (memory leak): n->val < < Finished checking --- 6 code warnings, as expected < < linked5.c: (in function node_free1) < linked5.c:14:9: Only storage n->next (type node) derived from released storage < is not released (memory leak): n < linked5.c: (in function node_free2) < linked5.c:21:2: Only storage nn not released before return < linked5.c:20:9: Storage nn becomes only < linked5.c:19:8: Variable nn declared but not used < linked5.c: (in function node_free3) < linked5.c:26:9: Dependent storage n->val passed as only param: free (n->val) < < Finished checking --- 4 code warnings, as expected < < linked6.c: (in function node_free1) < linked6.c:16:9: Only storage n->val (type item) derived from released storage < is not released (memory leak): n < linked6.c:16:9: Only storage n->next (type node) derived from released storage < is not released (memory leak): n < linked6.c: (in function node_free2) < linked6.c:24:2: Only storage nn not released before return < linked6.c:23:9: Storage nn becomes only < linked6.c:21:8: Variable nn declared but not used < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking lintcomments... 2,15c2 < lintcomments.c: (in function f) < lintcomments.c:7:51: Traditional lint comment /*FALLTHROUGH*/ used. Splint < interprets this in the same way as most Unix lints, but it is preferable to < replace it with the /*@fallthrough@*/ semantic comment < lintcomments.c:8:33: Traditional lint comment /*FALLTHROUGH*/ used. Splint < interprets this in the same way as most Unix lints, but it is preferable to < replace it with the /*@fallthrough@*/ semantic comment < lintcomments.c:9:30: Traditional lint comment /*FALLTHRU*/ used. Splint < interprets this in the same way as most Unix lints, but it is preferable to < replace it with the /*@fallthrough@*/ semantic comment < lintcomments.c:11:13: Fall through case (no preceding break) < lintcomments.c:23:21: Traditional lint comment /*NOTREACHED*/ used. Splint < interprets this in the same way as most Unix lints, but it is preferable to < replace it with the /*@notreached@*/ semantic comment. --- > Finished checking --- no code warnings, expected 5 17c4 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 1 19,30c6 < lintcomments.c: (in function f) < lintcomments.c:11:13: Fall through case (no preceding break) < < Finished checking --- 1 code warning, as expected < < 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) < lintcomments.c:11:13: Fall through case (no preceding break) < lintcomments.c:24:8: Unreachable code: i++ < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking list... 2,14c2 < list.c: (in function list_addh) < list.c:24:5: Variable e is kept in true branch, but not kept in continuation. < list.c:24:5: in true branch: < list.c:23:7: Storage e becomes kept < list.c:24:5: in continuation: < list.c:12:22: Storage e becomes only < 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 checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking longint... 2,5c2,3 < longint.c: (in function f) < longint.c:7:3: Assignment of long int to int: i1 = li1 < longint.c:10:3: Assignment of int to short int: si1 = i1 < longint.c:13:3: Assignment of long int to short int: si1 = li1 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/longint.c is a > considered a system file. No errors in this file will be reported. 7c5 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- 1 code warning, expected 3 9,11c7,8 < longint.c: (in function f) < longint.c:10:3: Assignment of int to short int: si1 = i1 < longint.c:13:3: Assignment of long int to short int: si1 = li1 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/longint.c is a > considered a system file. No errors in this file will be reported. 13c10 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 15,17c12,13 < longint.c: (in function f) < longint.c:7:3: Assignment of long int to int: i1 = li1 < longint.c:13:3: Assignment of long int to short int: si1 = li1 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/longint.c is a > considered a system file. No errors in this file will be reported. 19c15 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 21c17,20 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/longint.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking loopexec... 2,3c2 < loopexec.c: (in function g2) < loopexec.c:35:2: Out storage x not defined before return --- > Finished checking --- no code warnings, expected 1 5,14c4 < Finished checking --- 1 code warning, as expected < < loopexec.c: (in function g) < loopexec.c:13:2: Out storage x not defined before return < loopexec.c: (in function g1) < loopexec.c:24:2: Out storage x not defined before return < loopexec.c: (in function g2) < loopexec.c:35:2: Out storage x not defined before return < < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking looptesteffect... 2,7c2 < looptesteffect.c: (in function foo) < looptesteffect.c:18:43: Arrow access from possibly null pointer e (in post loop < increment): e->next < looptesteffect.c:18:43: Storage e may become null < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking macros... 2,29d1 < macros.c: (in macro needparen) < macros.c:7:26: Macro parameter used without parentheses: a < macros.c:7:30: Macro parameter used without parentheses: b < macros.c: (in macro needuse) < macros.c:8:21: Macro parameter b not used < macros.lcl:6:1: Specification of b < macros.c: (in macro multuse) < macros.c:9:18: Macro parameter a used more than once < macros.c: (in macro badassign) < macros.c:10:26: Assignment to macro parameter: a < macros.c:11: Macro badassign already defined < macros.c:10: Previous definition of badassign < macros.c: (in macro badassign) < macros.c:11:26: Operand of ++ is macro parameter (non-functional): (a)++ < macros.c:11:35: Operand of ++ is macro parameter (non-functional): ++(b) < macros.c: (in macro predbad) < macros.c:15:20: Macro parameter b used in true clause, but not in false clause < macros.c: (in macro predbad2) < macros.c:16:19: Macro parameter a used more than once < macros.c:16:22: Macro parameter b used more than once < macros.c: (in macro badval) < macros.c:22:23: Function badval specified to return int, implemented as macro < having type bool: ((a) == (b)) < macros.lcl:14: Specification of badval < macros.c: (in macro badconst) < macros.c:23:20: Constant badconst specified as bool, but defined as int: 5 < macros.lcl:18:15: Specification of badconst < macros.c:25:21: Constant worseconst implemented as parameterized macro 31,33d2 < macros.c:27: Variable var implemented by a macro < macros.lcl:22:5: Specification of var < macros.c:28: Variable var2 implemented as parameterized macro 35,36c4 < macros.c: (in macro var2) < macros.c:28:15: Macro parameter x used more than once --- > Finished checking --- no code warnings, expected 17 38c6 < Finished checking --- 17 code warnings, as expected --- > Finished checking --- no code warnings, expected 34 40,129c8 < macros.c:3: Parameterized macro has no prototype or specification: mustard < macros.c: (in macro mustard) < macros.c:3:30: Macro parameter used without parentheses: b < macros.c:3:18: Macro parameter a used more than once < macros.c:3:34: Macro parameter used without parentheses: a < macros.c:4: Parameterized macro has no prototype or specification: ketchup < macros.c:6: Parameterized macro has no prototype or specification: ok < macros.c:7: Parameterized macro has no prototype or specification: needparen < macros.c: (in macro needparen) < macros.c:7:26: Macro parameter used without parentheses: a < macros.c:7:30: Macro parameter used without parentheses: b < macros.c:8: Parameterized macro has no prototype or specification: needuse < macros.c: (in macro needuse) < macros.c:8:21: Macro parameter b not used < macros.c:9: Parameterized macro has no prototype or specification: multuse < macros.c: (in macro multuse) < macros.c:9:18: Macro parameter a used more than once < macros.c:10: Parameterized macro has no prototype or specification: badassign < macros.c: (in macro badassign) < macros.c:10:26: Assignment to macro parameter: a < macros.c:11: Macro badassign already defined < macros.c:10: Previous definition of badassign < macros.c: (in macro badassign) < macros.c:11:26: Operand of ++ is macro parameter (non-functional): (a)++ < macros.c:11:35: Operand of ++ is macro parameter (non-functional): ++(b) < macros.c:14: Parameterized macro has no prototype or specification: predok < macros.c:15: Parameterized macro has no prototype or specification: predbad < macros.c: (in macro predbad) < macros.c:15:20: Macro parameter b used in true clause, but not in false clause < macros.c:16: Parameterized macro has no prototype or specification: predbad2 < macros.c: (in macro predbad2) < macros.c:16:19: Macro parameter a used more than once < macros.c:16:22: Macro parameter b used more than once < macros.c:18: Parameterized macro has no prototype or specification: badorder < macros.c:19: Parameterized macro has no prototype or specification: okorder < macros.c:20: Parameterized macro has no prototype or specification: okorder2 < macros.c:22: Parameterized macro has no prototype or specification: badval < macros.c:23: Macro constant badconst not declared < macros.c:24: Macro constant goodconst not declared < macros.c:25: Parameterized macro has no prototype or specification: worseconst < macros.c:27: Macro constant var not declared < macros.c:28: Parameterized macro has no prototype or specification: var2 < macros.c: (in macro var2) < macros.c:28:15: Macro parameter x used more than once < < Finished checking --- 34 code warnings, as expected < < macros.c:3: Parameterized macro has no prototype or specification: mustard < macros.c: (in macro mustard) < macros.c:3:30: Macro parameter used without parentheses: b < macros.c:3:18: Macro parameter a used more than once < macros.c:3:34: Macro parameter used without parentheses: a < macros.c:4: Parameterized macro has no prototype or specification: ketchup < macros.c:6: Parameterized macro has no prototype or specification: ok < macros.c:7: Parameterized macro has no prototype or specification: needparen < macros.c: (in macro needparen) < macros.c:7:26: Macro parameter used without parentheses: a < macros.c:7:30: Macro parameter used without parentheses: b < macros.c:8: Parameterized macro has no prototype or specification: needuse < macros.c: (in macro needuse) < macros.c:8:21: Macro parameter b not used < macros.c:9: Parameterized macro has no prototype or specification: multuse < macros.c: (in macro multuse) < macros.c:9:18: Macro parameter a used more than once < macros.c:10: Parameterized macro has no prototype or specification: badassign < macros.c: (in macro badassign) < macros.c:10:26: Assignment to macro parameter: a < macros.c:11: Macro badassign already defined < macros.c:10: Previous definition of badassign < macros.c: (in macro badassign) < macros.c:11:26: Operand of ++ is macro parameter (non-functional): (a)++ < macros.c:11:35: Operand of ++ is macro parameter (non-functional): ++(b) < macros.c:14: Parameterized macro has no prototype or specification: predok < macros.c:15: Parameterized macro has no prototype or specification: predbad < macros.c: (in macro predbad) < macros.c:15:20: Macro parameter b used in true clause, but not in false clause < macros.c:16: Parameterized macro has no prototype or specification: predbad2 < macros.c: (in macro predbad2) < macros.c:16:19: Macro parameter a used more than once < macros.c:16:22: Macro parameter b used more than once < macros.c:18: Parameterized macro has no prototype or specification: badorder < macros.c:19: Parameterized macro has no prototype or specification: okorder < macros.c:20: Parameterized macro has no prototype or specification: okorder2 < macros.c:22: Parameterized macro has no prototype or specification: badval < macros.c:25: Parameterized macro has no prototype or specification: worseconst < macros.c:28: Parameterized macro has no prototype or specification: var2 < macros.c: (in macro var2) < macros.c:28:15: Macro parameter x used more than once < < Finished checking --- 31 code warnings, as expected --- > Finished checking --- no code warnings, expected 31 *** FAIL *** Checking macrosef... 2,10c2 < 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 checking --- no code warnings, expected 4 12c4 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 14,34c6 < 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 checking --- 3 code warnings, 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 checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking malloc... 2,33c2,3 < malloc.c: (in function f1) < malloc.c:3:21: Allocated memory is converted to type int * of (size 32), which < is not divisible into original allocation of space for 89 elements of type < void * (size 8) < malloc.c:5:5: Likely out-of-bounds store: ip[88] < Unable to resolve constraint: < requires 21 >= 88 < needed to satisfy precondition: < requires maxSet(ip @ malloc.c:5:5) >= 88 < malloc.c: (in function f2) < malloc.c:15:5: Likely out-of-bounds store: ip[22] < Unable to resolve constraint: < requires 21 >= 22 < needed to satisfy precondition: < requires maxSet(ip @ malloc.c:15:5) >= 22 < malloc.c: (in function f3) < malloc.c:26:5: Likely out-of-bounds store: ip[87] < Unable to resolve constraint: < requires 86 >= 87 < needed to satisfy precondition: < requires maxSet(ip @ malloc.c:26:5) >= 87 < malloc.c: (in function f4) < malloc.c:33:21: Allocated memory is used as a different type (int) from the < sizeof type (short int) < malloc.c:33:21: Allocated memory is converted to type int * of (size 32), which < is not divisible into original allocation of space for 87 elements of type < short int (size 8) < malloc.c:35:5: Likely out-of-bounds store: ip[86] < Unable to resolve constraint: < requires 20 >= 86 < needed to satisfy precondition: < requires maxSet(ip @ malloc.c:35:5) >= 86 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/malloc.c is a > considered a system file. No errors in this file will be reported. 35c5 < Finished checking --- 7 code warnings, as expected --- > Finished checking --- 1 code warning, expected 7 *** FAIL *** Checking merge... 2,11c2 < 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 checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking mergenull... Checking modifies... 2,22c2 < 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 < modifies.c:13:26: Modifies list uses fileSystem which is a parameter and has < special meaning in a modifies list. (Special meaning assumed.) < modifies.c:17:5: Globals list for f6 includes internal state, mstat, but < previously declared without globals internalState. < modifies.c:15:5: Declaration of f6 < modifies.c:17:5: Modifies list for f6 includes internal state, but previously < declared without modifies internal. < modifies.c:15:5: Declaration of f6 < modifies.c: (in function f1) < modifies.c:24:3: Undocumented modification of mstat: mstat++ < modifies.c: (in function g2) < modifies.c:37:1: Function g2 specified to modify internal state but no internal < state is modified < modifies.h:3:12: Declaration of g2 < modclient.c: (in function mod) < modclient.c:3:3: Statement has no effect: (void)f1(p) < < Finished checking --- 7 code warnings, as expected --- > Finished checking --- no code warnings, expected 7 *** FAIL *** Checking modtest... 2,13c2,3 < 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) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/modtest.c is a > considered a system file. No errors in this file will be reported. 15c5 < Finished checking --- 10 code warnings, as expected --- > Finished checking --- 1 code warning, expected 10 17,34c7,8 < 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) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/modtest.c is a > considered a system file. No errors in this file will be reported. 36c10 < Finished checking --- 13 code warnings, as expected --- > Finished checking --- 1 code warning, expected 13 38,57c12,13 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/modtest.c is a > considered a system file. No errors in this file will be reported. 59c15 < Finished checking --- 14 code warnings, as expected --- > Finished checking --- 1 code warning, expected 14 *** FAIL *** Checking moduncon... 2,12c2 < moduncon.c: (in function g) < moduncon.c:12:10: Undetected modification possible from call to unconstrained < function umod: umod < moduncon.c:13:22: Undetected modification possible from call to unconstrained < function umod: umod < moduncon.c:13:16: Undetected modification possible from call to unconstrained < function mmod: mmod < moduncon.c:13:10: Undetected modification possible from call to unconstrained < function umod: umod < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking mongoincludes... 2,54c2 < 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 < minc1.h:1: Include site < mongoincludes.c:1: Include site < minc1.h:2: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:1: Include site < minc1.h:3: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:1: Include site < minc2.h:1: Maximum include nesting depth (1, current depth 3) exceeded < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc3.h:1: Maximum include nesting depth (1, current depth 4) exceeded < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc4.h:1: Maximum include nesting depth (1, current depth 5) exceeded < minc3.h:1: Include site < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc3.h:2: Maximum include nesting depth (1, current depth 4) exceeded < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc2.h:2: Maximum include nesting depth (1, current depth 3) exceeded < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc4.h:1: Maximum include nesting depth (1, current depth 4) exceeded < minc2.h:2: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc2.h:3: Maximum include nesting depth (1, current depth 3) exceeded < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc1.h:4: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:1: Include site < minc3.h:1: Maximum include nesting depth (1, current depth 3) exceeded < minc1.h:4: Include site < mongoincludes.c:1: Include site < minc3.h:2: Maximum include nesting depth (1, current depth 3) exceeded < minc1.h:4: Include site < mongoincludes.c:1: Include site < minc2.h:1: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:2: Include site < minc2.h:2: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:2: Include site < minc2.h:3: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:2: Include site < minc3.h:1: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:3: Include site < minc3.h:2: Maximum include nesting depth (1, current depth 2) exceeded < mongoincludes.c:3: Include site --- > Finished checking --- no code warnings, expected 19 56c4 < Finished checking --- 19 code warnings, as expected --- > Finished checking --- no code warnings, expected 10 58,92c6 < minc4.h:1: Maximum include nesting depth (2, current depth 3) exceeded < minc1.h:1: Include site < mongoincludes.c:1: Include site < minc2.h:1: Maximum include nesting depth (2, current depth 3) exceeded < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc3.h:1: Maximum include nesting depth (2, current depth 4) exceeded < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc4.h:1: Maximum include nesting depth (2, current depth 5) exceeded < minc3.h:1: Include site < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc3.h:2: Maximum include nesting depth (2, current depth 4) exceeded < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc2.h:2: Maximum include nesting depth (2, current depth 3) exceeded < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc4.h:1: Maximum include nesting depth (2, current depth 4) exceeded < minc2.h:2: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc2.h:3: Maximum include nesting depth (2, current depth 3) exceeded < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc3.h:1: Maximum include nesting depth (2, current depth 3) exceeded < minc1.h:4: Include site < mongoincludes.c:1: Include site < minc3.h:2: Maximum include nesting depth (2, current depth 3) exceeded < minc1.h:4: Include site < mongoincludes.c:1: Include site --- > Finished checking --- no code warnings, expected 4 94,122c8 < Finished checking --- 10 code warnings, as expected < < minc3.h:1: Maximum include nesting depth (3, current depth 4) exceeded < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc4.h:1: Maximum include nesting depth (3, current depth 5) exceeded < minc3.h:1: Include site < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc3.h:2: Maximum include nesting depth (3, current depth 4) exceeded < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < minc4.h:1: Maximum include nesting depth (3, current depth 4) exceeded < minc2.h:2: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < < Finished checking --- 4 code warnings, as expected < < minc4.h:1: Maximum include nesting depth (4, current depth 5) exceeded < minc3.h:1: Include site < minc2.h:1: Include site < minc1.h:3: Include site < mongoincludes.c:1: Include site < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking mystrncat... 2,27c2 < mystrncat.c: (in function func) < mystrncat.c:12:13: Passed storage buffer not completely defined (*buffer is < undefined): mystrncat (buffer, ...) < mystrncat.c:13:13: Passed storage b not completely defined (*b is undefined): < mystrncat (b, ...) < mystrncat.c:10:3: Storage *b allocated < mystrncat.c:12:3: Possible out-of-bounds store: < mystrncat(buffer, str, sizeof((buffer)) - 1) < Unable to resolve constraint: < requires maxRead(buffer @ mystrncat.c:12:13) <= 0 < needed to satisfy precondition: < requires maxSet(buffer @ mystrncat.c:12:13) >= maxRead(buffer @ < mystrncat.c:12:13) + 255 < derived from mystrncat precondition: < requires maxSet() >= maxRead() + < mystrncat.c:13:3: Possible out-of-bounds store: < mystrncat(b, str, sizeof((buffer)) - 1) < Unable to resolve constraint: < 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 checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking noeffect... 2,13c2 < 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. (Use < -macroassign to inhibit warning) < noeffect.c:3:72: Assignment to macro parameter: e2 < 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. (Use -fcnuse to inhibit warning) < noeffect.c:3: Definition of exprNode_swap < < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking null... 2,187c2 < null1.c: (in function ptrpred) < null1.c:7:22: Out storage x not defined before return < null1.c: (in function f) < 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:19:22: Fresh storage y not released before return < null1.c:12:41: Fresh storage y created < 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:25:3: Storage *z allocated < 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 created < < Finished checking --- 15 code warnings, 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 created < null1.c:34:5: Passed storage z not completely defined (*z is undefined): g (z) < null1.c:25:3: Storage *z allocated < null1.c:67:12: Fresh storage z3 not released before return < null1.c:27:3: Fresh storage z3 created < < Finished checking --- 4 code warnings, as expected < < null2.c: (in function ptrpred) < null2.c:7:22: Out storage x not defined before return < 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 checking --- 11 code warnings, 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 kept < null3.c:60:14: Returned storage y not completely defined (*y is undefined): y < null3.c:24:42: Storage *y allocated < 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:24:42: Storage *y allocated < 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 checking --- 15 code warnings, 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 kept < null3.c:60:14: Returned storage y not completely defined (*y is undefined): y < null3.c:24:42: Storage *y allocated < 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:24:42: Storage *y allocated < 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 checking --- 16 code warnings, 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 checking --- 1 code warning, 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 checking --- 4 code warnings, 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 checking --- 4 code warnings, 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 checking --- no code warnings, expected 15 189c4,18 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 > > Finished checking --- no code warnings, expected 11 > > Finished checking --- no code warnings, expected 15 > > Finished checking --- no code warnings, expected 16 > > Finished checking --- no code warnings, expected 1 > > Finished checking --- no code warnings, expected 4 > > Finished checking --- no code warnings, expected 4 > > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking nullret... 2,7c2 < nullret.c: (in function f1) < nullret.c:1:22: Null storage returned as non-null: 0 < nullret.c: (in function f3) < nullret.c:7:22: Null storage returned as non-null: 0 < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking nullassign... 2,3c2 < nullassign.c:1:10: Global a initialized to null value: int * a = 0 = 0 < nullassign.c:5:24: Global c initialized to null value: int * c = 0 = 0 --- > Finished checking --- no code warnings, expected 2 5,9c4 < Finished checking --- 2 code warnings, as expected < < nullassign.c:5:24: Global c initialized to null value: int * c = 0 = 0 < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking numabstract... 2,17c2 < numabstract.c: (in function adding) < numabstract.c:13:3: Assignment of char to apples: a2 = 'a' < numabstract.c:14:3: Assignment of char to int: i = 'c' < numabstract.c:15:17: Cast from literal to numabstract type apples: (apples)13 < numabstract.c:16:8: Incompatible types for + (apples, int): a + 5 < numabstract.c:17:3: Assignment of oranges to apples: a2 = o < numabstract.c:19:3: Assignment of oranges to int: i = o < numabstract.c:20:3: Assignment of apples to int: i = a2 + a < numabstract.c:21:10: Operands of + are different numabstract types (apples, < oranges): a + o < numabstract.c: (in function comparing) < numabstract.c:26:7: Operands of < have incompatible types (apples, int): a < 3 < numabstract.c:30:7: Operands of < are different numabstract types (apples, < oranges): a < o < numabstract.c:34:7: Operands of == are different numabstract types (apples, < oranges): a == o --- > Finished checking --- no code warnings, expected 11 19c4 < Finished checking --- 11 code warnings, as expected --- > Finished checking --- no code warnings, expected 9 21,54c6 < numabstract.c: (in function adding) < numabstract.c:13:3: Assignment of char to apples: a2 = 'a' < numabstract.c:14:3: Assignment of char to int: i = 'c' < numabstract.c:15:17: Cast from literal to numabstract type apples: (apples)13 < numabstract.c:17:3: Assignment of oranges to apples: a2 = o < numabstract.c:19:3: Assignment of oranges to int: i = o < numabstract.c:20:3: Assignment of apples to int: i = a2 + a < numabstract.c:21:10: Operands of + are different numabstract types (apples, < oranges): a + o < numabstract.c: (in function comparing) < numabstract.c:30:7: Operands of < are different numabstract types (apples, < oranges): a < o < numabstract.c:34:7: Operands of == are different numabstract types (apples, < oranges): a == o < < Finished checking --- 9 code warnings, as expected < < numabstract.c: (in function adding) < numabstract.c:13:3: Assignment of char to apples: a2 = 'a' < numabstract.c:14:3: Assignment of char to int: i = 'c' < numabstract.c:16:8: Incompatible types for + (apples, int): a + 5 < numabstract.c:17:3: Assignment of oranges to apples: a2 = o < numabstract.c:19:3: Assignment of oranges to int: i = o < numabstract.c:20:3: Assignment of apples to int: i = a2 + a < numabstract.c:21:10: Operands of + are different numabstract types (apples, < oranges): a + o < numabstract.c: (in function comparing) < numabstract.c:26:7: Operands of < have incompatible types (apples, int): a < 3 < numabstract.c:30:7: Operands of < are different numabstract types (apples, < oranges): a < o < numabstract.c:34:7: Operands of == are different numabstract types (apples, < oranges): a == o < < Finished checking --- 10 code warnings, as expected --- > Finished checking --- no code warnings, expected 10 *** FAIL *** Checking observer... 2,20c2 < 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 released < observer.c: (in function f) < observer.c:33:3: Suspect modification of observer s: *s = 'x' < observer.c:32:7: Storage *s becomes observer < 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:40:7: Storage *s becomes observer < observer.c:41:10: Observer storage s returned without qualification: s < observer.c:40:7: Storage s becomes observer --- > Finished checking --- no code warnings, expected 9 22c4 < Finished checking --- 9 code warnings, as expected --- > Finished checking --- no code warnings, expected 8 24,63c6 < 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 released < observer.c: (in function f) < observer.c:33:3: Suspect modification of observer s: *s = 'x' < observer.c:32:7: Storage *s becomes observer < 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:40:7: Storage *s becomes observer < observer.c:41:10: Observer storage s returned without qualification: s < observer.c:40:7: Storage s becomes observer < < Finished checking --- 8 code warnings, 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 released < observer.c: (in function f) < observer.c:33:3: Suspect modification of observer s: *s = 'x' < observer.c:32:7: Storage *s becomes observer < 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:40:7: Storage *s becomes observer < observer.c:41:10: Observer storage s returned without qualification: s < observer.c:40:7: Storage s becomes observer < < Finished checking --- 7 code warnings, as expected --- > Finished checking --- no code warnings, expected 7 *** FAIL *** Checking oldstyle... 2,14c2 < 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 * < oldstyle2.c: (in function noShadow) < oldstyle2.c:15:14: Statement after switch is not a case: int x < oldstyle2.c: (in function unrecognized) < oldstyle2.c:29:6: Unrecognized identifier: x < < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking outglob... 2,18c2,3 < 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.c:5:20: Storage x3 defined < outglob.c:41:13: Function returns with global x2 undefined < outglob.c:1:12: Storage x2 defined < outglob.c:41:13: Function returns with global x3 undefined < outglob.c:5:20: Storage x3 defined --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/outglob.c is a > considered a system file. No errors in this file will be reported. 20c5 < Finished checking --- 10 code warnings, as expected --- > Finished checking --- 1 code warning, expected 10 *** FAIL *** Checking outparam... 2,20c2 < 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 created < < Finished checking --- 12 code warnings, as expected --- > Finished checking --- no code warnings, expected 12 *** FAIL *** Checking parentype... 2c2,5 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/parentype.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking postnotnull... 2,6c2 < postnotnull.c: (in function test) < postnotnull.c:20:2: Only storage a.x (type char *) derived from variable < declared in this scope is not released (memory leak) < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking preds... 2,23c2 < 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. (Use -predboolint to inhibit < warning) < preds.c:15:8: Operand of ! is non-boolean (int): !(*p) < The operand of a boolean operator is not a boolean. Use +ptrnegate to allow ! < to be used on pointers. (Use -boolops to inhibit warning) < 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 == < instead of =. If an assignment is intended, add an extra parentheses nesting < (e.g., if ((a = b)) ...) to suppress this message. (Use -predassign to < inhibit warning) < preds.c:25:7: Test expression for if not bool, type char: (c = 'a') < Test expression type is not boolean. (Use -predboolothers to inhibit warning) < preds.c:30:7: Use of == with bool variables (risks inconsistency because of < multiple true values): b1 == b2 < Two bool values are compared directly using a C primitive. This may produce < unexpected results since all non-zero values are considered true, so < different true values may not be equal. The file bool.h (included in < splint/lib) provides bool_equal for safe bool comparisons. (Use -boolcompare < to inhibit warning) < preds.c:35:7: Test expression for if not bool, type char: c --- > Finished checking --- no code warnings, expected 6 25,34c4 < Finished checking --- 6 code warnings, as expected < < 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 == < instead of =. If an assignment is intended, add an extra parentheses nesting < (e.g., if ((a = b)) ...) to suppress this message. (Use -predassign to < inhibit warning) < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking prefixes... 4,159c4 < 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 < < Finished checking --- 4 code warnings, 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 checking --- 2 code warnings, as expected < < prefixes.c:3:13: Datatype tint name is not consistent with user-defined type < namespace prefix "^" < < Finished checking --- 1 code warning, 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 checking --- 2 code warnings, 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 checking --- 2 code warnings, 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 checking --- 2 code warnings, 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 checking --- 7 code warnings, 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 checking --- 4 code warnings, 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 checking --- 5 code warnings, 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 checking --- 5 code warnings, as expected < < prefixes.c:15:12: Variable aGb_Xint name is not consistent with global variable < namespace prefix "G" < < Finished checking --- 1 code warning, as expected < < prefixes.c:14:12: Variable Gint name is not consistent with global variable < namespace prefix "&G?_^" < < Finished checking --- 1 code warning, 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 checking --- 5 code warnings, 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 checking --- 4 code warnings, 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 checking --- no code warnings, expected 4 161c6,32 < Finished checking --- 13 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 > > Finished checking --- no code warnings, expected 1 > > Finished checking --- no code warnings, expected 2 > > Finished checking --- no code warnings, expected 2 > > Finished checking --- no code warnings, expected 2 > > Finished checking --- no code warnings, expected 7 > > Finished checking --- no code warnings, expected 4 > > Finished checking --- no code warnings, expected 5 > > Finished checking --- no code warnings, expected 5 > > Finished checking --- no code warnings, expected 1 > > Finished checking --- no code warnings, expected 1 > > Finished checking --- no code warnings, expected 5 > > Finished checking --- no code warnings, expected 4 > > Finished checking --- no code warnings, expected 13 *** FAIL *** Checking printflike... 2,15c2 < 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 < parameter < printflike.c:8:5: Function sprint is marked scanflike, but has no elipsis < parameter < printflike.c:13:15: Traditional lint comment /*PRINTFLIKE*/ used. Splint < interprets this in the same way as most Unix lints, but it is preferable to < replace it with either /*@printflike@*/, /*@scanflike@*/ or < /*@messagelike@*/. < printflike.c:16:35: Multiple special function codes: < printflike, messagelike (first code is ignored) < printflike.c:17:5: Function qxprint is marked messagelike, but the argument < before the elipsis has type int (should be char *) --- > Finished checking --- no code warnings, expected 6 17,30c4 < Finished checking --- 6 code warnings, as expected < < 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 < parameter < printflike.c:8:5: Function sprint is marked scanflike, but has no elipsis < parameter < printflike.c:16:35: Multiple special function codes: < printflike, messagelike (first code is ignored) < printflike.c:17:5: Function qxprint is marked messagelike, but the argument < before the elipsis has type int (should be char *) < < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking rc... 2,5c2,3 < rc.c: (in function f) < rc.c:3:10: Observer storage returned without qualification: < "a flag\"wicked cool" < rc.c:3:10: Storage becomes observer --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/rc.c is a considered > a system file. No errors in this file will be reported. 9,10c7,8 < rc.c: (in function f) < rc.c:3:10: Return value type int does not match declared type char *: 12 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/rc.c is a considered > a system file. No errors in this file will be reported. 15,17c13,14 < rc.c: (in function f) < rc.c:3:10: Observer storage returned without qualification: "a silly\"flag\"\\" < rc.c:3:10: Storage becomes observer --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/rc.c is a considered > a system file. No errors in this file will be reported. 22,23c19,20 < rc.c: (in function f) < rc.c:3:10: Unrecognized identifier: MYSTERY --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/rc.c is a considered > a system file. No errors in this file will be reported. 27,33c24,25 < rc3.splintrc:6:3: Flag dump must be followed by a string < A flag is not recognized or used in an incorrect way (Use -badflag to inhibit < warning) < rc3.splintrc:6:3: Cannot list files in .splintrc files: < internalnamelen, 73 (probable missing + or -) < rc.c: (in function f) < rc.c:3:10: Unrecognized identifier: MYSTERY --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/rc.c is a considered > a system file. No errors in this file will be reported. *** FAIL *** Checking refcounts... 2,23c2 < 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 killref < 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 checking --- 7 code warnings, as expected --- > Finished checking --- no code warnings, expected 7 *** FAIL *** Checking release... 2,6c2 < release.c: (in function f) < release.c:25:12: Owned storage z not released before return < release.c:22:7: Storage z becomes owned < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking repexpose... 2,30c2 < 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 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 checking --- no code warnings, expected 12 32c4 < Finished checking --- 12 code warnings, as expected --- > Finished checking --- no code warnings, expected 15 34,124c6 < 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 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 checking --- 15 code warnings, 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 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:5:16: Variable globstring declared but not defined < < Finished checking --- 27 code warnings, as expected --- > Finished checking --- no code warnings, expected 27 *** FAIL *** Checking returned... 2,6c2 < returned.c: (in function f) < returned.c:6:4: Dereference of possibly null pointer s: *s < returned.c:5:13: Storage s may become null < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking russian... 2c2,5 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/russian.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking sharing... 2,53c2 < sharing1.c: (in function f) < sharing1.c:12:12: Only storage x not released before return < sharing1.c:8:24: Storage x becomes only < sharing1.c:13:2: Only storage x not released before return < sharing1.c:8:24: Storage x becomes only < sharing1.c: (in function f2) < sharing1.c:19:12: Only storage y not released before return < sharing1.c:15:43: Storage y becomes only < sharing1.c: (in function f3) < sharing1.c:24:3: Only storage x assigned to shared: globshared1 = x < sharing1.c:22:25: Storage x becomes only < sharing1.c:25:2: Only storage x not released before return < sharing1.c:22:25: Storage x becomes only < sharing1.c: (in function f4) < 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: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:37:33: Storage *y3 allocated < 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:35:32: Storage *y allocated < sharing1.c:52:12: Shared storage globshared1 passed as only param: < f (globshared1, ...) < sharing1.c:4:19: Storage globshared1 becomes shared < 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 created < sharing1.c:59:13: Function returns with global globonly referencing released < storage < sharing1.c:57:9: Storage globonly released --- > Finished checking --- no code warnings, expected 21 55c4 < Finished checking --- 21 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 57,63c6 < 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 created --- > Finished checking --- no code warnings, expected 13 65c8 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 12 67,156c10 < 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 released < < Finished checking --- 13 code warnings, 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 released < < Finished checking --- 12 code warnings, 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 created < sharing5.c:33:2: Only storage only3 not released before return < sharing5.c:4:73: Storage only3 becomes only < < Finished checking --- 6 code warnings, as expected --- > Finished checking --- no code warnings, expected 6 *** FAIL *** Checking shifts... 2,6c2 < shifts.c: (in function f) < shifts.c:12:14: Right operand of << may be negative (int): u1 << i1 < shifts.c:13:14: Right operand of << may be negative (int): i1 << i1 < shifts.c:13:8: Left operand of << may be negative (int): i1 << i1 < shifts.c:17:14: Right operand of << may be negative (int): u2 << BAD_CONST --- > Finished checking --- no code warnings, expected 4 8c4 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 10,20c6 < shifts.c: (in function f) < shifts.c:12:14: Right operand of << may be negative (int): u1 << i1 < shifts.c:13:14: Right operand of << may be negative (int): i1 << i1 < shifts.c:17:14: Right operand of << may be negative (int): u2 << BAD_CONST < < Finished checking --- 3 code warnings, as expected < < shifts.c: (in function f) < shifts.c:13:8: Left operand of << may be negative (int): i1 << i1 < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking sizesigns... Checking slovaknames... 2,7c2 < slovaknames.c: (in function pivoYedno) < slovaknames.c:15:11: Left operand of == is abstract type (pivo): p == 1 < An abstraction barrier is broken. If necessary, use /*@access @*/ to < allow access to an abstract type. (Use -abstract to inhibit warning) < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 11,35c6 < slovaknames.c:5:5: Variable michelobLight name violates Slovak naming < convention. Slovak prefix michelob is not the name of a type. < Variable name is not consistent with Slovak naming convention. (Use either < -slovakvars or -namechecks to inhibit warning) < slovaknames.c:19:5: Function samAdams name violates Slovak naming convention. < Slovak prefix sam is not the name of a type. < Function or iterator name is not consistent with Slovak naming convention. < (Use either -slovakfcns or -namechecks to inhibit warning) < slovaknames.c:32:5: Function budweiser name is not consistent with Slovak < naming convention. Accessible types: pivo < Function or iterator name is not consistent with Slovak naming convention. < (Use either -slovakfcns or -namechecks to inhibit warning) < < Finished checking --- 3 code warnings, as expected < < slovaknames.c:19:5: Function samAdams name violates Slovak naming convention. < Slovak prefix sam is not the name of a type. < Function or iterator name is not consistent with Slovak naming convention. < (Use either -slovakfcns or -namechecks to inhibit warning) < slovaknames.c:32:5: Function budweiser name is not consistent with Slovak < naming convention. Accessible types: pivo < Function or iterator name is not consistent with Slovak naming convention. < (Use either -slovakfcns or -namechecks to inhibit warning) < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 37,58c8 < slovaknames.c:4:5: Variable pivoPyet name violates Slovak naming convention. < Slovak prefix pivo names an abstract type that is not accessible. < Use +accessslovak to allow access to type in functions named _. < slovaknames.c:5:5: Variable michelobLight name violates Slovak naming < convention. Slovak prefix michelob is not the name of a type. < Variable name is not consistent with Slovak naming convention. (Use either < -slovakvars or -namechecks to inhibit warning) < slovaknames.c:8:17: Constant pivoDevenast name violates Slovak naming < convention. Slovak prefix pivo names an abstract type that is not < accessible. < Use +accessslovak to allow access to type in functions named _. < slovaknames.c:11:6: Function pivoYedno name violates Slovak naming convention. < Slovak prefix pivo names an abstract type that is not accessible. < Use +accessslovak to allow access to type in functions named _. < slovaknames.c: (in function pivoYedno) < slovaknames.c:15:11: Left operand of == is abstract type (pivo): p == 1 < An abstraction barrier is broken. If necessary, use /*@access @*/ to < allow access to an abstract type. (Use -abstract to inhibit warning) < slovaknames.c:19:5: Function samAdams name violates Slovak naming convention. < Slovak prefix sam is not the name of a type. < slovaknames.c:32:5: Function budweiser name is not consistent with Slovak < naming convention. Accessible types: pivo --- > Finished checking --- no code warnings, expected 2 60c10 < Finished checking --- 7 code warnings, as expected --- > Finished checking --- no code warnings, expected 7 *** FAIL *** Checking specclauses... 2,14c2 < 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) < 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: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:23: Field r.name used after being released < specclauses.c:39:17: Storage r.name released --- > Finished checking --- no code warnings, expected 6 16c4 < Finished checking --- 6 code warnings, as expected --- > Finished checking --- no code warnings, expected 8 18,41c6 < 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 checking --- no code warnings, expected 5 43c8 < Finished checking --- 8 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 45,83c10 < 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: 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 checking --- 5 code warnings, 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 checking --- 3 code warnings, 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:14: Storage r->name becomes observer < < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking special... 2,42c2,3 < 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) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/special.c is a > considered a system file. No errors in this file will be reported. 44c5 < Finished checking --- 20 code warnings, as expected --- > Finished checking --- 1 code warning, expected 20 46,91c7,8 < 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) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/special.c is a > considered a system file. No errors in this file will be reported. 93c10 < Finished checking --- 22 code warnings, as expected --- > Finished checking --- 1 code warning, expected 22 *** FAIL *** Checking stack... 2,12c2 < 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-allocated storage < stack.c:10:2: Stack-allocated storage glob reachable from global glob < stack.c:8:3: Storage glob becomes stack-allocated storage < stack.c: (in function f) < stack.c:20:14: Stack-allocated storage &x reachable from return value: &x < stack.c:31:11: Stack-allocated storage sa reachable from return value: sa < stack.c:35:11: Stack-allocated storage sa reachable from return value: &sa[0] < < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking staticarray... 2,12c2 < staticarray.c: (in function foo1) < staticarray.c:9:10: Unqualified static storage buf returned as implicitly only: < buf < staticarray.c: (in function f) < staticarray.c:22:10: Implicitly temp storage outstr returned as implicitly < only: outstr < staticarray.c: (in function g) < staticarray.c:27:10: Implicitly temp storage outstr returned as implicitly < only: outstr < < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking strings... 2,7c2 < 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:24:14: Storage becomes observer < strings.c:25:7: Observer storage passed as only param: f3 ("hullo") < strings.c:25:7: Storage becomes observer --- > Finished checking --- no code warnings, expected 3 9c4 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- no code warnings, expected 1 11,25c6 < strings.c:21:6: Function main declared to return void, should return int < < Finished checking --- 1 code warning, 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:24:14: Storage becomes observer < 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 checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking stringliteral... 2,8c2,3 < stringliteral.c:3:16: String literal with 9 characters is assigned to char [8] < (no room for null terminator): "\000\000\000\000\000\000\000\001" < stringliteral.c:4:16: String literal with 5 characters is assigned to char [4] < (no room for null terminator): "abcd" < stringliteral.c:7:16: String literal with 7 characters (counting null < terminator) is assigned to char [4] (insufficient storage available): < "abcdef" --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/stringliteral.c is a > considered a system file. No errors in this file will be reported. 10c5 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- 1 code warning, expected 3 12,20c7,8 < stringliteral.c:2:15: String literal with 9 characters is assigned to char [8] < (no room for final null terminator): "\000\000\000\000\000\000\000\000" < stringliteral.c:3:16: String literal with 9 characters is assigned to char [8] < (no room for null terminator): "\000\000\000\000\000\000\000\001" < stringliteral.c:4:16: String literal with 5 characters is assigned to char [4] < (no room for null terminator): "abcd" < stringliteral.c:7:16: String literal with 7 characters (counting null < terminator) is assigned to char [4] (insufficient storage available): < "abcdef" --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/stringliteral.c is a > considered a system file. No errors in this file will be reported. 22c10 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 *** FAIL *** Checking structassign... 2,18c2 < structassign.c: (in function copyrecord) < structassign.c:15:15: Released storage x.name reachable from parameter at < return point < structassign.c:14:19: Storage x.name released < structassign.c: (in function copyrecord2) < structassign.c:23:15: Released storage x.name reachable from parameter at < return point < structassign.c:22:3: Storage x.name released < structassign.c: (in function copyrecord3) < structassign.c:28:12: Released storage x.name reachable from parameter at < return point < structassign.c:28:12: Storage x.name released < structassign.c: (in function main) < structassign.c:45:14: Only storage rc.name (type char *) derived from variable < declared in this scope is not released (memory leak) < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking typequals... 2,10c2 < 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 checking --- no code warnings, expected 5 12,18c4 < Finished checking --- 5 code warnings, 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 checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking typeof... 2,6c2 < typeof.c: (in function main) < typeof.c:10:4: Variable ip used before definition < typeof.c:11:4: Array element y[3] used before definition < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking ud... 2,11c2,3 < ud.c: (in function f) < ud.c:8:7: Variable y used before definition < ud.c:10:7: Variable z used before definition < ud.c:25:7: Variable z3 used before definition < ud.c:26:7: Variable z4 used before definition < ud.c:31:7: Variable z6 used before definition < ud.c:38:11: Variable j used before definition < ud.c:49:6: Variable i used before definition < ud.c:50:6: Variable z5 used before definition < ud.c:56:7: Variable z5 used before definition --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/ud.c is a considered > a system file. No errors in this file will be reported. 13c5 < Finished checking --- 9 code warnings, as expected --- > Finished checking --- 1 code warning, expected 9 15,19c7,8 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/ud2.c is a > considered a system file. No errors in this file will be reported. 21c10 < Finished checking --- 3 code warnings, as expected --- > Finished checking --- 1 code warning, expected 3 *** FAIL *** Checking ulstypes... 2,12c2,3 < 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 < ulstypes.c:10:3: Assignment of long int to int: loc = f(li) < ulstypes.c:11:3: Assignment of long int to int: loc = f(ui) < ulstypes.c:12:12: Function f expects arg 1 to be unsigned int gets int: loc < ulstypes.c:12:3: Assignment of long int to int: loc = f(loc) < ulstypes.c:15:10: Return value type unsigned int does not match declared type < long int: x < ulstypes.c:20:19: Variable x3 initialized to type int, expects unsigned int: < -15 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/ulstypes.c is a > considered a system file. No errors in this file will be reported. 14c5 < Finished checking --- 8 code warnings, as expected --- > Finished checking --- 1 code warning, expected 8 16c7,10 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/ulstypes.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking union... 2,25c2 < 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 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 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 released < < Finished checking --- 8 code warnings, as expected --- > Finished checking --- no code warnings, expected 8 *** FAIL *** Checking unioninit... 2,5c2,3 < unioninit.c:11:23: Initializer block for union test3 has 2 elements, union < initializers should have one element: 0, 1 < unioninit.c:13:25: Initial value of test4.test2_s is type long int, expects < short int: 23L --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/unioninit.c is a > considered a system file. No errors in this file will be reported. 7c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking unnamedsu... 2c2,5 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/unnamedsu.c is a > considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning *** FAIL *** Checking unreachable... 2,9c2 < unreachable.c: (in function f) < unreachable.c:6:4: Unreachable code: x++ < unreachable.c: (in function tu) < unreachable.c:21:7: Unreachable code: return < unreachable.c: (in function s) < unreachable.c:33:29: Unreachable code: z-- < unreachable.c:34:10: Fall through case (no preceding break) < unreachable.c:45:4: Unreachable code: z++ --- > Finished checking --- no code warnings, expected 5 11c4 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 13,15c6,7 < 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 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/switch.c is a > considered a system file. No errors in this file will be reported. 17,27c9 < Finished checking --- 2 code warnings, 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 checking --- 4 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 *** FAIL *** Checking unsignedcompare... 2,7c2,3 < unsignedcompare.c: (in function test) < unsignedcompare.c:5:3: Assignment of ssize_t to unsigned long int: < res = read(fd, buffer, cnt) < unsignedcompare.c:7:7: Comparison of unsigned value involving zero: res <= 0 < unsignedcompare.c:12:7: Comparison of unsigned value involving zero: res < 0 < unsignedcompare.c:12:18: Comparison of unsigned value involving zero: res >= 0 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/unsignedcompare.c is > a considered a system file. No errors in this file will be reported. 9c5 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- 1 code warning, expected 4 *** FAIL *** Checking unused... 2,9c2,3 < 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 < beginning with underscore) < unused.c:19:12: File static function f declared but not used < unused.c:22:1: Definition of f < unused.c:16:12: Function undef declared but not defined < unused.c:16:12: Function undef exported but not declared in header file --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/unused.c is a > considered a system file. No errors in this file will be reported. 11c5 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- 1 code warning, expected 5 13,23c7,8 < 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 < beginning with underscore) < unused.c:19:12: File static function f declared but not used < unused.c:22:1: Definition of f < unused.c:16:12: Function undef declared but not defined < unused.c:1:14: Type dumbtype declared but not used < unused.c:12:11: Field silly of structure struct _inner declared but not used < unused.c:7:7: Field dumb of structure struct _st declared but not used < unused.c:16:12: Function undef exported but not declared in header file --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/unused.c is a > considered a system file. No errors in this file will be reported. 25c10 < Finished checking --- 8 code warnings, as expected --- > Finished checking --- 1 code warning, expected 8 *** FAIL *** Checking ullint... 2,20c2 < ullint.c: (in function main) < ullint.c:24:3: Assignment of int to unsigned char: c = 0x01 < ullint.c:29:11: Operands of < have incompatible types (int, size_t): < i < sizeof((src)) < ullint.c:35:26: Array element src[0] used before definition < ullint.c:35:3: Assignment of unsigned char to pan_uint32_t: < ui32 = (pan_uint32_t)((src[0] ^ 0xFC) << 30) | ((src[1] ^ 0x80) << 24) | < ((src[2] ^ 0x80) << 18) | ((src[3] ^ 0x80) << 12) | ((src[4] ^ 0x80) << 6) < | (src[5] ^ 0x80) < ullint.c:37:3: Assignment of unsigned char to pan_uint32_t: d = c < < Finished checking --- 5 code warnings, as expected < < ullint.c: (in function main) < ullint.c:29:11: Operands of < have incompatible types (int, size_t): < i < sizeof((src)) < ullint.c:35:26: Array element src[0] used before definition < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking utypes... 2,7c2,3 < utypes.c:16: Include file matches the name of a POSIX library, < but the POSIX library is not being used. Consider using +posixlib or < +posixstrictlib to select the POSIX library, or -warnposix to suppress this < message. < utypes.c: (in function f) < utypes.c:26:8: Variable src_bytes declared but not used --- > < Location unknown >: Field name reused: > < Location unknown >: Previous use of 9c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking void... 2,5c2,3 < void.c: (in function f) < void.c:5:3: Return value (type int) ignored: f() < void.c:3:5: Function exported but not used outside void: f < void.c:7:1: Definition of f --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/void.c is a > considered a system file. No errors in this file will be reported. 7c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking widestrings... 2,8c2 < widestrings.c: (in function main) < widestrings.c:9:16: Function printf expects arg 1 to be char * gets wchar_t *: < L"English: Hello, world!\n" < widestrings.c:10:17: Function wprintf expects arg 1 to be wchar_t * gets char < *: "English: Hello, world!\n" < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking metastate... 2,137c2 < file1.c: (in function main) < file1.c:10:14: Invalid transfer from implicitly unopen fle to open (unopen file < passed as open): checkOpen(..., fle, ...) < file1.c:6:14: fle becomes implicitly unopen < file1.c:1:53: parameter 1 becomes open < file1.c:19:16: Invalid transfer from implicitly open fle to unopen (open file < passed as unopen): checkClosed(..., fle, ...) < file1.c:12:3: fle becomes implicitly open < file1.c:2:57: parameter 1 becomes unopen < file1.c:23:14: Invalid transfer from unopen fle to open (unopen file passed as < open): checkOpen(..., fle, ...) < file1.c:22:10: fle becomes unopen < file1.c:1:53: parameter 1 becomes open < file1.c:7:8: Variable s declared but not used < < Finished checking --- 4 code warnings, as expected < < file2.c: (in function main) < file2.c:11:6: Scope exit loses reference fle2 in invalid state implicitly open < (open file not closed) < file2.c:9:41: State becomes implicitly open < file2.c:13:12: Return loses reference fle1 in invalid state implicitly open < (open file not closed) < file2.c:5:37: State becomes implicitly open < < Finished checking --- 2 code warnings, as expected < < file3.c: (in function main) < file3.c:10:22: Possibly null storage fle1 passed as non-null param: < fclose (fle1) < file3.c:6:16: Storage fle1 may become null < file3.c:11:5: Control branches merge with incompatible states for fle1 (unopen < and open): files merge in inconsistent state < file3.c:6:37: fle1 becomes implicitly open < file3.c:10:14: fle1 becomes unopen < < Finished checking --- 2 code warnings, as expected < < file4.c: (in function main) < file4.c:15:14: Invalid transfer from implicitly unopen fle to open (unopen file < passed as open): checkOpen(..., fle, ...) < file4.c:11:14: fle becomes implicitly unopen < file4.c:1:53: parameter 1 becomes open < < Finished checking --- 1 code warning, as expected < < file5.c: (in function passOpen) < file5.c:8:2: Ensures clause not satisfied by f (state is open): < ensures closed f < file5.c:4:35: f becomes open < file5.c: (in function returnOpen) < file5.c:16:10: Result state fle does not satisfy ensures clause: < ensures open result (state is unopen, should be open): fle < file5.c:13:30: Storage fle becomes dependent < file5.c: (in function main) < file5.c:25:14: Invalid transfer from implicitly unopen fle to open (unopen file < passed as open): checkOpen(..., fle, ...) < file5.c:21:14: fle becomes implicitly unopen < file5.c:1:53: parameter 1 becomes open < file5.c:35:18: Invalid transfer from unopen fle to open (unopen file passed as < open): fclose(..., fle, ...) < file5.c:34:3: fle becomes unopen < file.xh:1:44: parameter 1 becomes open < < Finished checking --- 4 code warnings, as expected < < file6.c: (in function newOpenBad) < file6.c:20:10: Invalid transfer from unopen res to open (unopen file passed as < open): return res < file6.c:19:10: res becomes unopen < file6.c:14:2: becomes open < file6.c: (in function main) < file6.c:30:12: Return loses reference fle in invalid state implicitly open < (open file not closed) < file6.c:27:3: State becomes implicitly open < < Finished checking --- 2 code warnings, as expected < < filebad.c:1:23: Attribute annotation open used in inconsistent context: < int badOpen(FILE *) < filebad.c:3:52: Attribute annotation closed used in inconsistent context: < int p_x < filebad.c:3:12: Attribute annotation open used on inappropriate reference p_x < in ensures open clause of badEnsures: ensures open p_x < < Finished checking --- 3 code warnings, as expected < < sockets.c: (in function test1) < sockets.c:13:3: Requires clause of called function useSockets not satisfied < (state is uninitialized): requires sockets_initialized < sockets.c: (in function test5) < sockets.c:37:3: Requires clause of called function useSockets not satisfied < (state is uninitialized): requires sockets_initialized < sockets.c: (in function test6) < sockets.c:42:3: Requires clause of called function useSockets not satisfied < (state is uninitialized): requires sockets_initialized < < Finished checking --- 3 code warnings, as expected < < sockets2.c: (in function test1) < sockets2.c:15:4: Control branches merge with incompatible global states < (initialized and uninitialized): Sockets initialized on true branch, < uninitialized on false branch. < sockets2.c:11:24: becomes uninitialized < sockets2.c:14:5: becomes initialized < sockets2.c: (in function test2) < sockets2.c:24:3: Control branches merge with incompatible global states < (uninitialized and initialized): Sockets uninitialized on false branch, < initialized on true branch. < sockets2.c:20:24: becomes initialized < sockets2.c:23:5: becomes uninitialized < < Finished checking --- 2 code warnings, as expected < < struct.c: (in function source_badClose) < struct.c:10:2: Function returns with parameter s in inconsistent state (s->file < is unopen, should be open): unopen file passed as open < struct.c:9:10: s->file becomes unopen < < Finished checking --- 1 code warning, as expected < < nullbranch.c: (in function ftest2) < nullbranch.c:30:22: Possibly null storage f passed as non-null param: < fclose (f) < nullbranch.c:22:7: Storage f may become null < nullbranch.c:32:2: Return loses reference f in invalid state open (open file < not closed) < nullbranch.c:22:3: State becomes open < < Finished checking --- 2 code warnings, as expected < < osd.c: (in function osd_fileIsReadable) < osd.c:9:7: Return value (type int) ignored: fclose(fl) < osd.c:10:14: Return value type bool does not match declared type int: true < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 *** FAIL *** Checking mergestate... 2,25c2 < taintednm.c: (in function f) < taintednm.c:15:7: Attributes merged in ensures clause in states that cannot be < combined (t2 is untainted, s is tainted): bogus merge < taintednm.c:1:32: s becomes tainted < taintednm.c:24:10: Stack-allocated storage t reachable from return value: t < < Finished checking --- 2 code warnings, as expected < < taintednm.c: (in function f) < taintednm.c:16:18: Invalid transfer from tainted t to untainted (Possibly < tainted storage used as untainted.): system(..., t, ...) < taintednm.c:15:7: t becomes tainted < taintednm.xh:23:55: s becomes untainted < taintednm.c:19:18: Invalid transfer from tainted t to untainted (Possibly < tainted storage used as untainted.): system(..., t, ...) < taintednm.c:18:7: t becomes tainted < taintednm.xh:23:55: s becomes untainted < taintednm.c:22:18: Invalid transfer from tainted t to untainted (Possibly < tainted storage used as untainted.): system(..., t, ...) < taintednm.c:18:7: t becomes tainted < taintednm.xh:23:55: s becomes untainted < taintednm.c:24:10: Stack-allocated storage t reachable from return value: t < < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking tainted... 2,73c2 < tainted.c: (in function f) < tainted.c:5:20: Invalid transfer from tainted s to untainted (Possibly tainted < storage used as untainted.): f(..., s, ...) < tainted.c:3:48: s becomes tainted < tainted.c:3:74: us becomes untainted < tainted.c: (in function test) < tainted.c:12:18: Invalid transfer from tainted s to untainted (Possibly tainted < storage used as untainted.): system(..., s, ...) < tainted.c:9:34: s becomes tainted < tainted.xh:26:55: s becomes untainted < tainted.c:17:18: Invalid transfer from tainted t to untainted (Possibly tainted < storage used as untainted.): system(..., t, ...) < tainted.c:15:3: t becomes tainted < tainted.xh:26:55: s becomes untainted < tainted.c:20:18: Invalid transfer from tainted t to untainted (Possibly tainted < storage used as untainted.): system(..., t, ...) < tainted.c:19:3: t becomes tainted < tainted.xh:26:55: s becomes untainted < < Finished checking --- 4 code warnings, as expected < < tainted-bad.mts:18:7: Transfer clause uses unrecognized result state peach: < untainted as tainted ==> peach < tainted-bad.mts:14:17: Merge clause uses unrecognized second value junky: < tainted X junky ==> error "Splat!" < tainted-bad.mts:11:7: Annotation declaration uses unrecognized value name blue: < maybetainted reference ==> blue < tainted-bad.mts:5:21: Defaults declaration uses unrecognized value name < stainted: stainted reference < tainted-bad.mts:7:21: Duplicate defaults declaration for context parameter: < untainted parameter < tainted.c: (in function f) < tainted.c:5:20: Invalid transfer from tainted s to untainted (Possibly tainted < storage used as untainted.): f(..., s, ...) < tainted.c:3:48: s becomes tainted < tainted.c:3:74: us becomes untainted < tainted.c: (in function test) < tainted.c:12:18: Invalid transfer from tainted s to untainted (Possibly tainted < storage used as untainted.): system(..., s, ...) < tainted.c:9:34: s becomes tainted < tainted.xh:26:55: s becomes untainted < tainted.c:17:18: Invalid transfer from tainted t to untainted (Possibly tainted < storage used as untainted.): system(..., t, ...) < tainted.c:15:3: t becomes tainted < tainted.xh:26:55: s becomes untainted < tainted.c:20:18: Invalid transfer from tainted t to untainted (Possibly tainted < storage used as untainted.): system(..., t, ...) < tainted.c:15:3: t becomes tainted < tainted.xh:26:55: s becomes untainted < < Finished checking --- 9 code warnings, as expected < < tainted2.c: (in function test) < tainted2.c:20:10: Invalid transfer from tainted stk to untainted (Possibly < tainted storage used as untainted.): return stk < tainted2.c:17:14: stk becomes tainted < tainted2.c:4:2: becomes untainted < < Finished checking --- 1 code warning, as expected < < tainted3.c: (in function test) < tainted3.c:7:19: Invalid transfer from tainted def to untainted (Possibly < tainted storage used as untainted.): checkUntainted(..., def, ...) < tainted3.c:4:36: def becomes tainted < tainted3.c:1:53: def becomes untainted < < Finished checking --- 1 code warning, as expected < < tainted4.c: (in function test) < tainted4.c:9:19: Invalid transfer from tainted def to untainted (*def): < Possibly tainted storage used as untainted. < tainted4.c:6:36: def becomes tainted --- > Finished checking --- no code warnings, expected 4 75c4,10 < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 9 > > Finished checking --- no code warnings, expected 1 > > Finished checking --- no code warnings, expected 1 > > Finished checking --- no code warnings, expected 1 79,115c14,16 < taintedmerge.c: (in function f) < taintedmerge.c:11:18: Invalid transfer from tainted t to untainted (Possibly < tainted storage used as untainted.): system(..., t, ...) < taintedmerge.c:10:3: t becomes tainted < tainted.xh:26:55: s becomes untainted < taintedmerge.c:14:18: Invalid transfer from tainted t to untainted (Possibly < tainted storage used as untainted.): system(..., t, ...) < taintedmerge.c:13:3: t becomes tainted < tainted.xh:26:55: s becomes untainted < taintedmerge.c:16:10: Stack-allocated storage t reachable from return value: t < < Finished checking --- 3 code warnings, as expected < < taintedimplicit.c: (in function dangerouscall) < taintedimplicit.c:17:18: Invalid transfer from tainted [result of taintme] to < untainted (Possibly tainted storage used as untainted.): < system(..., taintme(s), ...) < taintedimplicit.c:17:18: becomes tainted < tainted.xh:26:55: s becomes untainted < < Finished checking --- 1 code warning, as expected < < sprintf.c: (in function sp) < sprintf.c:7:3: Buffer overflow possible with sprintf. Recommend using snprintf < instead: sprintf < sprintf.c:10:3: Buffer overflow possible with sprintf. Recommend using < snprintf instead: sprintf < sprintf.c:11:18: Invalid transfer from tainted s to untainted (Possibly tainted < storage used as untainted.): system(..., s, ...) < sprintf.c:10:37: s becomes tainted < tainted.xh:26:55: s1 becomes untainted < sprintf.c:13:3: Buffer overflow possible with sprintf. Recommend using < snprintf instead: sprintf < sprintf.c:14:18: Invalid transfer from tainted s to untainted (Possibly tainted < storage used as untainted.): system(..., s, ...) < sprintf.c:13:61: s becomes tainted < tainted.xh:26:55: s1 becomes untainted --- > Finished checking --- no code warnings, expected 3 > > Finished checking --- no code warnings, expected 1 117c18 < Finished checking --- 5 code warnings, as expected --- > Finished checking --- no code warnings, expected 5 *** FAIL *** Checking fileio... 2,31c2 < filerw.c: (in function f) < filerw.c:6:14: Invalid transfer from rw_write f2 to rw_read (Must reset file < between write and read.): fgetc(..., f2, ...) < filerw.c:1:72: f2 becomes rw_write < filerw.xh:3:38: f1 becomes rw_read < filerw.c:8:22: Invalid transfer from rw_read f1 to rw_write (Must reset file < between read and write.): fputc(..., f1, ...) < filerw.c:1:39: f1 becomes rw_read < filerw.xh:4:44: f1 becomes rw_write < filerw.c:12:14: Invalid transfer from rw_write f1 to rw_read (Must reset file < between write and read.): fgetc(..., f1, ...) < filerw.c:10:22: f1 becomes rw_write < filerw.xh:3:38: f1 becomes rw_read < < Finished checking --- 3 code warnings, as expected < < file.c: (in function f) < file.c:14:5: Control branches merge with incompatible states for fout (closed < and open) < file.c:3:27: fout becomes implicitly open < file.c:13:14: fout becomes closed < file.c:23:5: Control branches merge with incompatible states for fin (closed < and open) < file.c:3:16: fin becomes implicitly open < file.c:22:14: fin becomes closed < file.c:25:10: Variable res used before definition < < Finished checking --- 3 code warnings, as expected < < Finished checking --- no warnings --- > Finished checking --- no code warnings, expected 3 *** FAIL *** Checking simplebufferConstraintTests... 2,33c2 < m.c: (in function t) < m.c:9:1: Index of possibly null pointer f: f < m.c:8:5: Storage f may become null < sizeof.c: (in function f) < sizeof.c:17:1: Likely out-of-bounds store: x[(sizeof(x))] < Unable to resolve constraint: < requires 2 >= 3 < needed to satisfy precondition: < requires maxSet(x @ sizeof.c:17:1) >= 3 < test3.c:2:6: Function t defined more than once < m.c:11:1: Previous definition of t < test3.c: (in function t) < test3.c:9:3: Likely out-of-bounds store: g[101] < Unable to resolve constraint: < requires 99 >= 101 < needed to satisfy precondition: < requires maxSet(g @ test3.c:9:3) >= 101 < test7.c:2:6: Function t defined more than once < m.c:11:1: Previous definition of t < test7.c: (in function t) < test7.c:6:3: Possible out-of-bounds store: g[2] < Unable to resolve constraint: < requires maxSet(g @ test7.c:4:3) >= 4 < needed to satisfy precondition: < requires maxSet(g @ test7.c:6:3) >= 2 < test7.c:8:3: Possible out-of-bounds store: j[0] < Unable to resolve constraint: < requires maxSet(j @ test7.c:8:3) >= 0 < needed to satisfy precondition: < requires maxSet(j @ test7.c:8:3) >= 0 < < Finished checking --- 7 code warnings, as expected --- > Finished checking --- no code warnings, expected 7 *** FAIL *** Checking moreBufferTests... 2,39c2,19 < unrecogCall.c: (in function foo) < unrecogCall.c:8:3: Unrecognized identifier: bar < initialization.c: (in function initialization) < initialization.c:5:10: Variable g declared but not used < initialization.c:5:14: Possible out-of-bounds read: e[22] < Unable to resolve constraint: < requires maxRead(d @ initialization.c:3:14) >= 22 < needed to satisfy precondition: < requires maxRead(e @ initialization.c:5:14) >= 22 < initialization.c:8:3: Possible out-of-bounds store: f[2] < Unable to resolve constraint: < requires maxSet(d @ initialization.c:3:14) >= 2 < needed to satisfy precondition: < requires maxSet(f @ initialization.c:8:3) >= 2 < simplifyTest.c: (in function fooSub) < simplifyTest.c:3:3: Possible out-of-bounds store: s[i] < Unable to resolve constraint: < requires maxSet(s @ simplifyTest.c:3:3) >= i @ simplifyTest.c:3:5 < needed to satisfy precondition: < requires maxSet(s @ simplifyTest.c:3:3) >= i @ simplifyTest.c:3:5 < simplifyTest.c: (in function fooAdd) < simplifyTest.c:10:3: Possible out-of-bounds store: s[i + 2] < Unable to resolve constraint: < requires maxSet(s @ simplifyTest.c:10:3) >= i @ simplifyTest.c:10:5 + 2 < needed to satisfy precondition: < requires maxSet(s @ simplifyTest.c:10:3) >= i @ simplifyTest.c:10:5 + 2 < strncatNotReallyGood.c: (in function NotGoodfunc) < strncatNotReallyGood.c:4:29: Passed storage buffer not completely defined < (*buffer is undefined): strncat (buffer, ...) < strncatNotReallyGood.c:4:21: Possible out-of-bounds store: < strncat(buffer, str, sizeof((buffer)) - 1) < Unable to resolve constraint: < requires maxRead(buffer @ strncatNotReallyGood.c:4:29) <= 0 < needed to satisfy precondition: < requires maxSet(buffer @ strncatNotReallyGood.c:4:29) >= maxRead(buffer @ < strncatNotReallyGood.c:4:29) + 255 < derived from strncat precondition: requires maxSet() >= < maxRead() + --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/moreBufferTests/unrec > ogCall.c is a considered a system file. No errors in this file will be > reported. > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/moreBufferTests/strrc > hr.c is a considered a system file. No errors in this file will be > reported. > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/moreBufferTests/initi > alization.c is a considered a system file. No errors in this file will be > reported. > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/moreBufferTests/simpl > ifyTest.c is a considered a system file. No errors in this file will be > reported. > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/moreBufferTests/strnc > atNotReallyGood.c is a considered a system file. No errors in this file > will be reported. > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/moreBufferTests/strnc > atReallyGood.c is a considered a system file. No errors in this file will > be reported. 41c21 < Finished checking --- 8 code warnings, as expected --- > Finished checking --- 6 code warnings, expected 8 *** FAIL *** Checking moreBufferTests2... 2,28c2 < unknownsize.c: (in function uknSize1) < unknownsize.c:9:3: Possible out-of-bounds store: c[9] < Unable to resolve constraint: < requires maxSet(c @ unknownsize.c:9:3) >= 9 < needed to satisfy precondition: < requires maxSet(c @ unknownsize.c:9:3) >= 9 < < Finished checking --- 1 code warning, as expected < < fixedArrayType.c: (in function fixedArrayTouch) < fixedArrayType.c:9:3: Possible out-of-bounds store: buffer[sizeof(Array) - 1] < Unable to resolve constraint: < requires sizeof(Array) @ fixedArrayType.c:9:25 <= 10 < needed to satisfy precondition: < requires maxSet(buffer @ fixedArrayType.c:9:3) >= sizeof(Array) @ < fixedArrayType.c:9:25 - 1 < < Finished checking --- 1 code warning, as expected < < initBlock.c: (in function main) < initBlock.c:8:3: Likely out-of-bounds store: buf[10] < Unable to resolve constraint: < requires 9 >= 10 < needed to satisfy precondition: < requires maxSet(buf @ initBlock.c:8:3) >= 10 < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking globalbufferannotation... Checking maxset... 4,15c4 < maxsetnoannotations.c: (in function noancopy) < maxsetnoannotations.c:2:3: Possible out-of-bounds store: strcpy(a, b) < Unable to resolve constraint: < requires maxSet(a @ maxsetnoannotations.c:2:11) >= maxRead(b @ < maxsetnoannotations.c:2:13) < needed to satisfy precondition: < requires maxSet(a @ maxsetnoannotations.c:2:11) >= maxRead(b @ < maxsetnoannotations.c:2:13) < derived from strcpy precondition: requires maxSet() >= < maxRead() < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking strchr... 2,6c2,3 < strchr.c: (in function func) < strchr.c:5:4: Dereference of possibly null pointer c: *c < strchr.c:4:7: Storage c may become null < strchr.c:5:3: Suspect modification of observer c: *c = 'd' < strchr.c:4:7: Storage *c becomes observer --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/strchr/strchr.c is a > considered a system file. No errors in this file will be reported. 8c5 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- 1 code warning, expected 2 *** FAIL *** Checking sizeoftest... 2,9c2 < sizeof.c: (in function main) < sizeof.c:6:2: Likely out-of-bounds store: x[(sizeof(x))] < Unable to resolve constraint: < requires 2 >= 3 < needed to satisfy precondition: < requires maxSet(x @ sizeof.c:6:2) >= 3 < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 *** FAIL *** Checking for... 2,7c2,3 < for.c: (in function f) < for.c:13:5: Possible out-of-bounds store: t[i] < Unable to resolve constraint: < requires i @ for.c:13:7 <= 10 < needed to satisfy precondition: < requires maxSet(t @ for.c:13:5) >= i @ for.c:13:7 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/for/for.c is a > considered a system file. No errors in this file will be reported. *** FAIL *** Checking manual... 2,233c2 < sample.c:11: Fresh storage x not released before < return < sample.c:5: Fresh storage x created < sample.c:5: Variable x declared but not used < < Finished checking --- 2 code warnings, as expected < < null.c:3: Dereference of possibly null pointer s: *s < null.c:1: Storage s may become null < < Finished checking --- 1 code warning, as expected < < Finished checking --- no warnings < < usedef.c:11: Value *x used before definition < usedef.c:13: Passed storage x not completely defined < (*x is undefined): getVal (x) < usedef.c:15: Passed storage x not completely defined < (*x is undefined): mysteryVal (x) < < Finished checking --- 3 code warnings, as expected < < usedef.c:11: Value *x used before definition < usedef.c:13: Passed storage x not completely defined < (*x is undefined): getVal (x) < < Finished checking --- 2 code warnings, as expected < < bool.c:6: Test expression for if is assignment expression: i = 3 < bool.c:6: Test expression for if not bool, type int: i = 3 < bool.c:7: Return value type bool does not match declared type int: b1 < bool.c:8: Operand of ! is non-boolean (int): !i < bool.c:8: Right operand of || is non-boolean (char *): !i || s < bool.c:10: Test expression for if not bool, type char *: s < bool.c:12: Use of == with bool variables (risks inconsistency because < of multiple true values): b1 == b2 < < Finished checking --- 7 code warnings, as expected < < palindrome.c:6: Cast from underlying < abstract type mstring: (char *)s < palindrome.c:7: Function strlen expects arg < 1 to be char * gets mstring: s < palindrome.c:11: Array fetch from non-array < (mstring): s[len - i - 1] < palindrome.c:19: Function isPalindrome < expects arg 1 to be mstring gets char *: < "bob" < < Finished checking --- 4 code warnings, as < expected < < only.c:11: Only storage glob (type int *) not released < before assignment: glob = y < only.c:1: Storage glob becomes only < only.c:11: Implicitly temp storage y assigned to only: < glob = y < only.c:13: Dereference of possibly null pointer m: *m < only.c:8: Storage m may become null < only.c:13: Variable x used after being released < only.c:12: Storage x released < only.c:14: Implicitly temp storage z returned as only: < z < only.c:14: Fresh storage m not released before return < only.c:9: Fresh storage m created < < Finished checking --- 6 code warnings, as expected < < stack.c:12: Stack-allocated storage &loc reachable < from return value: &loc < stack.c:12: Stack-allocated storage *x reachable from < parameter x < stack.c:10: Storage *x becomes stack-allocated < storage < stack.c:12: Stack-allocated storage glob reachable < from global glob < stack.c:9: Storage glob becomes stack-allocated < storage < < Finished checking --- 3 code warnings, as expected < < rstring.c:13: Reference counted storage returned < without modifying reference count: r1 < < Finished checking --- 1 code warning, as expected < < unique.c:7: Parameter 1 (s) to function strcpy is < declared unique but may be aliased externally by < parameter 2 (t) < < Finished checking --- 1 code warning, as expected < < exposure.c:6: Function returns reference to < parameter e: e->name < exposure.c:6: Return value exposes rep of < employee: e->name < exposure.c:6: Released storage e->name reachable < from parameter at return point < exposure.c:6: Storage e->name released < exposure.c:23: Suspect modification of observer < name: *name = toupper(*name) < exposure.c:22: Storage *name becomes observer < < Finished checking --- 4 code warnings, as < expected < < modify.c:4: Undocumented modification of *y: *y = *x < modify.c:5: Suspect object listed in modifies of setx < not modified: *x < modify.c:1: Declaration of setx < < Finished checking --- 2 code warnings, as expected < < globals.c:5: Undocumented use of global glob2 < globals.c:3: Global glob1 listed but not used < < Finished checking --- 2 code warnings, as expected < < annotglobs.c:13: Undef global globnum used before < definition < annotglobs.c:15: Global storage globname contains 1 < undefined field when call returns: firstname < annotglobs.c:21: Only storage globname.firstname (type < char *) derived from killed global is not released < (memory leak) < < Finished checking --- 3 code warnings, as expected < < Finished checking --- no warnings < < order.c:11: Expression has undefined behavior (value of < right operand modified by left operand): x++ * x < order.c:13: Expression has undefined behavior (left operand < uses i, modified by right operand): y[i] = i++ < order.c:14: Expression has undefined behavior (value of < right operand modified by left operand): < modglob() * glob < order.c:15: Expression has undefined behavior < (unconstrained function mystery used in left operand < may set global variable glob used in right operand): < mystery() * glob < < Finished checking --- 4 code warnings, as expected < < order.c:11: Expression has undefined behavior (value < of right operand modified by left operand): < x++ * x < order.c:13: Expression has undefined behavior (left < operand uses i, modified by right operand): < y[i] = i++ < order.c:14: Expression has undefined behavior (value < of right operand modified by left operand): < modglob() * glob < < Finished checking --- 3 code warnings, as expected < < loop.c:14: Suspected infinite loop. No value used in < loop test (x, glob1) is modified by test or loop < body. < loop.c:15: Suspected infinite loop. No condition < values modified. Modification possible through < unconstrained calls: h < < Finished checking --- 2 code warnings, as expected < < loop.c:14: Suspected infinite loop. No value used in < loop test (x, glob1) is modified by test or loop < body. < < Finished checking --- 1 code warning, as expected < < switch.c:11: Fall through case (no preceding break) < switch.c:14: Missing case in switch: DEFINITELY < < Finished checking --- 2 code warnings, as expected < < noeffect.c:6: Statement has no effect: y == *x < noeffect.c:7: Statement has no effect: nomodcall(x) < noeffect.c:8: Statement has no effect (possible < undected modification through call to < unconstrained function mysterycall): < mysterycall(x) < < Finished checking --- 3 code warnings, as expected < < noeffect.c:6: Statement has no effect: y == *x < noeffect.c:7: Statement has no effect: nomodcall(x) < < Finished checking --- 2 code warnings, as expected < < ignore.c:8: Return value (type int) ignored: fi() < ignore.c:10: Return value (type bool) ignored: fb() < < Finished checking --- 2 code warnings, as expected < < ignore.c:8: Return value (type int) ignored: fi() < < Finished checking --- 1 code warning, as expected < < ignore.c:10: Return value (type bool) ignored: fb() < < Finished checking --- 1 code warning, as expected < < setChar.c:5: Likely out-of-bounds store: buf[10] < Unable to resolve constraint: < requires 9 >= 10 < needed to satisfy precondition: < requires maxSet(buf @ setChar.c:5) >= 10 < < Finished checking --- 1 code warning, as expected < < multiError.c:4: Possible out-of-bounds store: buf[2] < Unable to resolve constraint: < requires maxSet(buf @ multiError.c:4) >= 2 < needed to satisfy precondition: < requires maxSet(buf @ multiError.c:4) >= 2 < < Finished checking --- 1 code warning, as expected < < bounds.c:9: Possible out-of-bounds store: < strcpy(str, tmp) < Unable to resolve constraint: < requires maxSet(str @ bounds.c:9) >= < maxRead(getenv("MYENV") @ bounds.c:7) < needed to satisfy precondition: < requires maxSet(str @ bounds.c:9) >= < maxRead(tmp @ bounds.c:9) < derived from strcpy precondition: requires < maxSet() >= maxRead() < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking tests2.2... 2,3c2 < boolops.c: (in function main) < boolops.c:12:3: Assignment of int to Kzam: b = 12 --- > Finished checking --- no code warnings, expected 1 5,9c4 < Finished checking --- 1 code warning, as expected < < mbool.h:1:17: Type implemented as macro: bool < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 11,13c6,7 < boolenum.c: (in function main) < boolenum.c:11:8: Use of == with BOOLEAN variables (risks inconsistency because < of multiple true values): a == TRUE --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/boolenum.c > is a considered a system file. No errors in this file will be reported. 17,19c11 < break.c: (in function f) < break.c:9:4: Dereference of possibly null pointer x: *x < break.c:1:24: Storage x may become null --- > Finished checking --- no code warnings, expected 1 21c13,14 < Finished checking --- 1 code warning, as expected --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/bstring.c > is a considered a system file. No errors in this file will be reported. 23,24c16 < bstring.c:4:14: Initial value of s4[0] is type char *, expects char: "hullo" < bstring.c:4:23: Initial value of s4[1] is type char *, expects char: "g'bye" --- > Finished checking --- 1 code warning, expected 2 26c18 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 1 28,32c20,21 < decl.c:3:21: Structure struct tm declared with fields { int x; }, specified < with fields { int tm_sec; int tm_min; int tm_hour;, ... } < load file standard.lcd: Specification of struct tm < decl.c:3:17: Field tm_sec in specified corresponds to x in declaration < load file standard.lcd: Specification of tm_sec --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/enumbool.c > is a considered a system file. No errors in this file will be reported. 34c23 < Finished checking --- 1 code warning, as expected --- > Finished checking --- 1 code warning 36c25,26 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/enumbool.c > is a considered a system file. No errors in this file will be reported. 38,47c28 < enumbool.c:1:16: Enumerator member false declared with inconsistent type: < enum { false, true } < load file standard.lcd: Specification of false: bool < enumbool.c:1:27: Enumerator member true declared with inconsistent type: < enum { false, true } < load file standard.lcd: Specification of true: bool < enumbool.c:1:34: Member of boolean enumerated type definition does not match < name set to represent true or false: false < enumbool.c:1:34: Member of boolean enumerated type definition does not match < name set to represent true or false: true --- > Finished checking --- 1 code warning, expected 2 49c30,31 < Finished checking --- 4 code warnings, expected 2 --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/extension.c > is a considered a system file. No errors in this file will be reported. 51c33 < Finished checking --- no warnings --- > Finished checking --- 1 code warning 52a35,36 > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/extension.c > is a considered a system file. No errors in this file will be reported. 54c38 < parse errors, see splint -help parseerrors.) --- > parse errors, see splint -help parseerrors.) 57c41,42 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/modarray.c > is a considered a system file. No errors in this file will be reported. 59,60c44,47 < nestext.c: (in function f) < nestext.c:3:26: Declaration using extern inside function scope: int test(void) --- > Finished checking --- 1 code warning > > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/nestext.c > is a considered a system file. No errors in this file will be reported. 64,84c51,54 < sizeofarray.c:1:12: Function parameter x declared as manifest array (size < constant is meaningless) < sizeofarray.c: (in function f) < sizeofarray.c:5:13: Parameter to sizeof is an array-type function parameter: < sizeof((x)) < sizeofarray.c:10:16: Return value type size_t does not match declared type int: < sizeof((a)) < < Finished checking --- 3 code warnings, as expected < < rex.c: (in function main) < rex.c:19:12: Only storage re.parent (type struct rx_hash *) derived from < variable declared in this scope is not released (memory leak) < rex.c:19:12: Only storage *(re.children)->parent (type struct rx_hash *) < derived from variable declared in this scope is not released (memory leak) < rex.c:19:12: Only storage *(*(re.children)->children)->parent (type struct < rx_hash *) derived from variable declared in this scope is not released < (memory leak) < rex.c:19:12: Only storage *(*(*(re.children)->children)->children)->parent < (type struct rx_hash *) derived from variable declared in this scope is not < released (memory leak) --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/sizeofarray. > c is a considered a system file. No errors in this file will be reported. > > Finished checking --- 1 code warning, expected 3 86c56 < Finished checking --- 4 code warnings, as expected --- > Finished checking --- no code warnings, expected 4 88c58,59 < struct.c:13:6: Function main declared to return void, should return int --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.2/struct.c is > a considered a system file. No errors in this file will be reported. *** FAIL *** Checking tests2.4... 2c2,3 < Finished checking --- no warnings --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.4/emptycase.c > is a considered a system file. No errors in this file will be reported. 4,127c5 < 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 checking --- 2 code warnings, as expected < < 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) < duffs.c:9:8: Fall through case (no preceding break) < duffs.c:10:8: Fall through case (no preceding break) < duffs.c:11:8: Fall through case (no preceding break) < duffs.c:12:8: Fall through case (no preceding break) < duffs.c:13:8: Fall through case (no preceding break) < < Finished checking --- 7 code warnings, as expected < < Finished checking --- no warnings < < Finished checking --- no warnings < < bug2.c: (in function main) < 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 checking --- 5 code warnings, 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 checking --- 3 code warnings, as expected < < Finished checking --- no warnings < < Finished checking --- no warnings < < Finished checking --- no warnings < < hexconstants.c: (in function f) < hexconstants.c:5:10: Return value type unsigned int does not match declared < type int: m1 + m2 < < Finished checking --- 1 code warning, 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 checking --- 4 code warnings, as expected < < innercomment.c:1:17: Comment starts inside comment < innercomment.c:16:3: Comment starts inside comment < < Finished checking --- 2 code warnings, as expected < < Finished checking --- no warnings < < Finished checking --- no warnings < < 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 checking --- 2 code warnings, as expected < < Finished checking --- no warnings < < Finished checking --- no warnings < < Finished checking --- no warnings < < error.c:5:9: Variable x initialized to type char, expects int: 'a' < < Finished checking --- 1 code warning, as expected < < ulrich.c: (in function utl_calloc) < ulrich.c:15:12: Possibly null storage newblock returned as non-null: newblock < ulrich.c:12:16: Storage newblock may become null < < Finished checking --- 1 code warning, as expected < < cpptest.c: (in function test) < cpptest.c:2:11: Variable x initialized to type char, expects int: 'a' < < Finished checking --- 1 code warning, 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 checking --- 4 code warnings, as expected < < Finished checking --- no warnings < < Finished checking --- no warnings < < Finished checking --- no warnings < < 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 checking --- 2 code warnings, 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 checking --- 1 code warning, as expected --- > Finished checking --- 1 code warning *** FAIL *** Checking tests2.5... 4,5c4 < boolt.c: (in function test) < boolt.c:7:16: Function test expects arg 1 to be pan_bool_t gets int: 2 --- > Finished checking --- no code warnings, expected 1 7c6,7 < Finished checking --- 1 code warning, as expected --- > Command Line: Warning /usr/src/RPM/BUILD/splint-3.1.2/test/tests2.5/uconstants.c > is a considered a system file. No errors in this file will be reported. 9,11c9 < 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 checking --- 1 code warning, expected 2 13,18c11 < Finished checking --- 2 code warnings, as expected < < hoof.c: (in function main) < hoof.c:12:16: Function init_arr expects arg 2 to be long int * gets int *: &j < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 24,28c17 < booltest.c: (in function f) < booltest.c:8:7: Test expression for if not bool, type int: i < booltest.c:9:12: Return value type int does not match declared type bool: i < < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 32,35c21 < booltest.c: (in function f) < booltest.c:9:12: Return value type int does not match declared type bool: i < < Finished checking --- 1 code warning, as expected --- > Finished checking --- no code warnings, expected 1 41,51c27 < 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 created < < Finished checking --- 2 code warnings, 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 checking --- no code warnings, expected 2 53c29 < Finished checking --- 2 code warnings, as expected --- > Finished checking --- no code warnings, expected 2 *** FAIL *** Checking db1... 2,46c2 < employee.c: (in function employee_equal) < employee.c:25: Function strncmp expects arg 3 to be size_t gets int: < maxEmployeeName < employee.c: (in function employee_sprint) < employee.c:33: Buffer overflow possible with sprintf. Recommend using snprintf < instead: sprintf < empset.c: (in function empset_insert) < empset.c:28: Variable er declared but not used < empset.c: (in function empset_disjointUnion) < empset.c:85: Undocumented modification of s1 possible from call to < erc_iterStart (through alias s2): erc_iterStart(s2) < empset.c:85: Undocumented modification of s2 possible from call to < erc_iterStart: erc_iterStart(s2) < empset.c: (in function empset_union) < empset.c:108: Undocumented modification of s2 possible from call to < erc_iterStart (through alias s1): erc_iterStart(s1) < empset.c:108: Undocumented modification of s1 possible from call to < erc_iterStart: erc_iterStart(s1) < empset.c: (in function empset_subset) < empset.c:139: Undocumented modification of s1 possible from call to < erc_iterStart: erc_iterStart(s1) < empset.c:135: Variable e declared but not used < ereftab.c: (in function ereftab_lookup) < ereftab.c:34: Undocumented modification of t possible from call to < erc_iterStart: erc_iterStart(t) < erc.c: (in function erc_sprint) < erc.c:141: Function malloc expects arg 1 to be size_t gets int: < erc_size(c) * (employeePrintSize + 1) + 1 < erc.c:151: Undocumented modification of c possible from call to erc_iterStart: < erc_iterStart(c) < dbase.c: (in function query) < dbase.c:210: Variable er declared but not used < dbase.c:211: Variable e declared but not used < drive.c: (in function main) < drive.c:47: Buffer overflow possible with sprintf. Recommend using snprintf < instead: sprintf < drive.c:63: Buffer overflow possible with sprintf. Recommend using snprintf < instead: sprintf < drive.c:81: Buffer overflow possible with sprintf. Recommend using snprintf < instead: sprintf < drive.c:118: Buffer overflow possible with sprintf. Recommend using snprintf < instead: sprintf < drive.c:123: Return value (type db_status) ignored: hire(e) < < Finished checking --- 19 code warnings, as expected --- > Finished checking --- no code warnings, expected 19 48,62d3 < employee.h:2: Name EMPLOYEE_H is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < eref.h:2: Name EREF_H is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < empset.h:2: Name EMPSET_H is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < erc.h:2: Name ERC_H is reserved for future library extensions. Macros beginning < with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) < ereftab.h:4: Name EREFTAB_H is reserved for future library extensions. Macros < beginning with E and a digit or uppercase letter may be added to . < (ISO99:7.26.3) 195,196d135 < erc.h:6: Name _elem is in the implementation name space (any identifier < beginning with underscore) 201,202d139 < empset.c:5: Name _empset_get is in the implementation name space (any < identifier beginning with underscore) 352,353d288 < dbase.c:40: Name _db_ercKeyGet is in the implementation name space (any < identifier beginning with underscore) 357,358d291 < dbase.c:56: Name _db_keyGet is in the implementation name space (any identifier < beginning with underscore) 368,369d300 < dbase.c:73: Name _db_addEmpls is in the implementation name space (any < identifier beginning with underscore) 659c590 < namechecks 11 6 --- > namechecks 1 6 678c609 < Total 338 73 --- > Total 328 73 680c611 < Finished checking --- 338 code warnings, as expected --- > Finished checking --- 328 code warnings, expected 338 *** FAIL *** Checking db2... 2,42c2 < employee.c: (in function employee_setName) < employee.c:17: Parameter 1 (e->name) to function strcpy is declared unique but < may be aliased externally by parameter 2 (na) < eref.c: (in function eref_alloc) < eref.c:19: Unqualified storage eref_Pool.conts passed as only param: < realloc (eref_Pool.conts, ...) < eref.c:29: Unqualified storage eref_Pool.status passed as only param: < realloc (eref_Pool.status, ...) < eref.c:45: Storage eref_Pool.status reachable from global is only (should be < unqualified) < eref.c:29: Storage eref_Pool.status becomes only < eref.c:45: Storage eref_Pool.conts reachable from global is only (should be < unqualified) < eref.c:19: Storage eref_Pool.conts becomes only < eref.c: (in function eref_initMod) < eref.c:84: Storage eref_Pool.conts reachable from global is fresh (should be < unqualified) < eref.c:62: Fresh storage eref_Pool.conts created < eref.c:84: Global storage *(eref_Pool.conts) contains 5 undefined fields when < call returns: ssNum, name, salary, gen, j < eref.c:84: Storage eref_Pool.status reachable from global is fresh (should be < unqualified) < eref.c:70: Fresh storage eref_Pool.status created < eref.c:84: Global storage eref_Pool contains 1 undefined field when call < returns: status < erc.c: (in function erc_create) < erc.c:33: Null storage c->vals derivable from return value: c < erc.c:31: Storage c->vals becomes null < erc.c:33: Fresh storage returned as unqualified (should be only): c < erc.c:23: Fresh storage c created < erc.c: (in function erc_clear) < erc.c:49: Function returns with null storage derivable from parameter c->vals < erc.c:47: Storage c->vals becomes null < erc.c: (in function erc_final) < erc.c:54: Implicitly temp storage c passed as only param: free (c) < erc.c: (in function erc_delete) < erc.c:102: Released storage c->vals reachable from parameter at return point < erc.c:100: Storage c->vals released < erc.c: (in function erc_sprint) < erc.c:141: Fresh storage returned as unqualified (should be only): result < erc.c:122: Fresh storage result created --- > Finished checking --- no code warnings, expected 15 44,110c4 < Finished checking --- 15 code warnings, as expected < < employee.c: (in function employee_setName) < employee.c:17: Parameter 1 (e->name) to function strcpy is declared unique but < may be aliased externally by parameter 2 (na) < eref.c: (in function eref_initMod) < eref.c:62: Implicitly only storage eref_Pool.conts (type employee *) not < released before assignment: eref_Pool.conts = (employee *)malloc(size * < sizeof(employee)) < eref.c:70: Implicitly only storage eref_Pool.status (type eref_status *) not < released before assignment: eref_Pool.status = (eref_status *)malloc(size * < sizeof(eref_status)) < eref.c:84: Global storage *(eref_Pool.conts) contains 5 undefined fields when < call returns: ssNum, name, salary, gen, j < eref.c:84: Global storage eref_Pool contains 1 undefined field when call < returns: status < empset.c: (in function empset_intersect) < empset.c:126: Fresh storage toDelete not released before return < empset.c:112: Fresh storage toDelete created < erc.c: (in function erc_create) < erc.c:33: Null storage c->vals derivable from return value: c < erc.c:31: Storage c->vals becomes null < erc.c: (in function erc_clear) < erc.c:49: Function returns with null storage derivable from parameter c->vals < erc.c:47: Storage c->vals becomes null < erc.c: (in function erc_final) < erc.c:54: Implicitly temp storage c passed as only param: free (c) < erc.c: (in function erc_delete) < erc.c:98: Implicitly only storage prev->next (type struct _elem *) not released < before assignment: prev->next = elem->next < erc.c:98: Clauses exit with elem referencing implicitly only storage in true < branch, local storage in false branch < erc.c:96: Storage elem becomes implicitly only (through alias c->vals) < erc.c:102: Released storage c->vals reachable from parameter at return point < erc.c:100: Storage c->vals released < drive.c: (in function main) < drive.c:49: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:65: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:83: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:120: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:124: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:135: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:140: Fresh storage em1 (type empset) not released before assignment: < em1 = empset_create() < drive.c:35: Fresh storage em1 created < drive.c:146: Fresh storage em2 (type empset) not released before assignment: < em2 = empset_create() < drive.c:74: Fresh storage em2 created < drive.c:147: Fresh storage em3 (type empset) not released before assignment: < em3 = empset_disjointUnion(em2, em1) < drive.c:87: Fresh storage em3 created < drive.c:159: Variable m_res name is not a macro variable (it is a local < variable), but matches the macro variable namespace prefix "m_" < drive.c:163: Fresh storage em1 not released before return < drive.c:140: Fresh storage em1 created < drive.c:163: Fresh storage em2 not released before return < drive.c:146: Fresh storage em2 created < drive.c:163: Fresh storage em3 not released before return < drive.c:147: Fresh storage em3 created < < Finished checking --- 25 code warnings, as expected --- > Finished checking --- no code warnings, expected 25 *** FAIL *** Checking db3... make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/test' Making all in doc make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/doc' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/doc' make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2' make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2' make: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2' + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.84462 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/splint-buildroot + : + /bin/rm -rf -- /usr/src/tmp/splint-buildroot + cd splint-3.1.2 + make 'INSTALL=/bin/install -p' install DESTDIR=/usr/src/tmp/splint-buildroot make: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2' Making install in src make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/src' make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/src' /bin/sh ../config/mkinstalldirs /usr/src/tmp/splint-buildroot/usr/bin mkdir /usr/src/tmp/splint-buildroot mkdir /usr/src/tmp/splint-buildroot/usr mkdir /usr/src/tmp/splint-buildroot/usr/bin /bin/install -p splint /usr/src/tmp/splint-buildroot/usr/bin/splint make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/src' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/src' Making install in lib make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' ../src/splint -nof -nolib +impconj standard.h -dump standard Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h -dump standardstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj standard.h posix.h -dump posix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h posix.h -dump posixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj standard.h posix.h unix.h stdio.h stdlib.h -dump unix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj -DSTRICT standard.h posix.h unix.h stdio.h stdlib.h -dump unixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' make[2]: Nothing to be done for 'install-exec-am'. ../src/splint -nof -nolib +impconj standard.h -dump standard Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h -dump standardstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj standard.h posix.h -dump posix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -nof -nolib +impconj -DSTRICT standard.h posix.h -dump posixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj standard.h posix.h unix.h stdio.h stdlib.h -dump unix Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings ../src/splint -supcounts -nof -incondefs -nolib +impconj -DSTRICT standard.h posix.h unix.h stdio.h stdlib.h -dump unixstrict Splint 3.1.2 --- 15 Mar 2020 Finished checking --- no warnings /bin/sh ../config/mkinstalldirs /usr/src/tmp/splint-buildroot/usr/share/splint/lib mkdir /usr/src/tmp/splint-buildroot/usr/share mkdir /usr/src/tmp/splint-buildroot/usr/share/splint mkdir /usr/src/tmp/splint-buildroot/usr/share/splint/lib /bin/install -p -m 644 standard.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/standard.h /bin/install -p -m 644 standard.lcd /usr/src/tmp/splint-buildroot/usr/share/splint/lib/standard.lcd /bin/install -p -m 644 standardstrict.lcd /usr/src/tmp/splint-buildroot/usr/share/splint/lib/standardstrict.lcd /bin/install -p -m 644 posix.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/posix.h /bin/install -p -m 644 posix.lcd /usr/src/tmp/splint-buildroot/usr/share/splint/lib/posix.lcd /bin/install -p -m 644 posixstrict.lcd /usr/src/tmp/splint-buildroot/usr/share/splint/lib/posixstrict.lcd /bin/install -p -m 644 unix.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/unix.h /bin/install -p -m 644 unix.lcd /usr/src/tmp/splint-buildroot/usr/share/splint/lib/unix.lcd /bin/install -p -m 644 unixstrict.lcd /usr/src/tmp/splint-buildroot/usr/share/splint/lib/unixstrict.lcd /bin/install -p -m 644 CTrait.syms /usr/src/tmp/splint-buildroot/usr/share/splint/lib/CTrait.syms /bin/install -p -m 644 CTraitGen.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/lib/CTraitGen.lcl /bin/install -p -m 644 bool.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/bool.h /bin/install -p -m 644 file.mts /usr/src/tmp/splint-buildroot/usr/share/splint/lib/file.mts /bin/install -p -m 644 file.xh /usr/src/tmp/splint-buildroot/usr/share/splint/lib/file.xh /bin/install -p -m 644 filerw.mts /usr/src/tmp/splint-buildroot/usr/share/splint/lib/filerw.mts /bin/install -p -m 644 filerw.xh /usr/src/tmp/splint-buildroot/usr/share/splint/lib/filerw.xh /bin/install -p -m 644 lclinit.lci /usr/src/tmp/splint-buildroot/usr/share/splint/lib/lclinit.lci /bin/install -p -m 644 linux.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/linux.h /bin/install -p -m 644 lslinit.lsi /usr/src/tmp/splint-buildroot/usr/share/splint/lib/lslinit.lsi /bin/install -p -m 644 tainted.mts /usr/src/tmp/splint-buildroot/usr/share/splint/lib/tainted.mts /bin/install -p -m 644 tainted.xh /usr/src/tmp/splint-buildroot/usr/share/splint/lib/tainted.xh /bin/install -p -m 644 stdio.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/stdio.h /bin/install -p -m 644 stdlib.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/stdlib.h /bin/install -p -m 644 stdio.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/stdio.h /bin/install -p -m 644 stdlib.h /usr/src/tmp/splint-buildroot/usr/share/splint/lib/stdlib.h make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/lib' Making install in imports make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/imports' make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/imports' make[2]: Nothing to be done for 'install-exec-am'. /bin/sh ../config/mkinstalldirs /usr/src/tmp/splint-buildroot/usr/share/splint/imports mkdir /usr/src/tmp/splint-buildroot/usr/share/splint/imports /bin/install -p -m 644 assert.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/assert.lcl /bin/install -p -m 644 assert.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/assert.lcs /bin/install -p -m 644 ctype.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/ctype.lcl /bin/install -p -m 644 ctype.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/ctype.lcs /bin/install -p -m 644 errno.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/errno.lcl /bin/install -p -m 644 errno.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/errno.lcs /bin/install -p -m 644 limits.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/limits.lcl /bin/install -p -m 644 limits.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/limits.lcs /bin/install -p -m 644 locale.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/locale.lcl /bin/install -p -m 644 locale.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/locale.lcs /bin/install -p -m 644 math.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/math.lcl /bin/install -p -m 644 math.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/math.lcs /bin/install -p -m 644 setjmp.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/setjmp.lcl /bin/install -p -m 644 setjmp.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/setjmp.lcs /bin/install -p -m 644 signal.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/signal.lcl /bin/install -p -m 644 signal.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/signal.lcs /bin/install -p -m 644 stdarg.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/stdarg.lcl /bin/install -p -m 644 stdarg.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/stdarg.lcs /bin/install -p -m 644 stdio.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/stdio.lcl /bin/install -p -m 644 stdio.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/stdio.lcs /bin/install -p -m 644 stdlib.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/stdlib.lcl /bin/install -p -m 644 stdlib.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/stdlib.lcs /bin/install -p -m 644 string.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/string.lcl /bin/install -p -m 644 string.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/string.lcs /bin/install -p -m 644 strings.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/strings.lcl /bin/install -p -m 644 strings.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/strings.lcs /bin/install -p -m 644 time.lcl /usr/src/tmp/splint-buildroot/usr/share/splint/imports/time.lcl /bin/install -p -m 644 time.lcs /usr/src/tmp/splint-buildroot/usr/share/splint/imports/time.lcs make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/imports' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/imports' Making install in test make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/test' make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/test' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/test' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/test' Making install in doc make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/doc' make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2/doc' make[2]: Nothing to be done for 'install-exec-am'. /bin/sh ../config/mkinstalldirs /usr/src/tmp/splint-buildroot/usr/share/man/man1 mkdir /usr/src/tmp/splint-buildroot/usr/share/man mkdir /usr/src/tmp/splint-buildroot/usr/share/man/man1 /bin/install -p -m 644 ./splint.1 /usr/src/tmp/splint-buildroot/usr/share/man/man1/splint.1 make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/doc' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2/doc' make[1]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2' make[2]: Entering directory '/usr/src/RPM/BUILD/splint-3.1.2' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2' make[1]: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2' make: Leaving directory '/usr/src/RPM/BUILD/splint-3.1.2' + ln -s splint /usr/src/tmp/splint-buildroot/usr/bin/lclint + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/splint-buildroot (auto) Verifying and fixing files in /usr/src/tmp/splint-buildroot (binconfig,pkgconfig,libtool,desktop) Checking contents of files in /usr/src/tmp/splint-buildroot/ (default) Compressing files in /usr/src/tmp/splint-buildroot (auto) Adjusting library links in /usr/src/tmp/splint-buildroot ./usr/share/splint/lib: Verifying ELF objects in /usr/src/tmp/splint-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) verify-elf: WARNING: ./usr/bin/splint: uses non-LFS functions: __fxstat __xstat fopen open Hardlinking identical .pyc and .pyo files Processing files: splint-3.1.2-alt2.qa1 Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.43815 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd splint-3.1.2 + DOCDIR=/usr/src/tmp/splint-buildroot/usr/share/doc/splint-3.1.2 + export DOCDIR + rm -rf /usr/src/tmp/splint-buildroot/usr/share/doc/splint-3.1.2 + /bin/mkdir -p /usr/src/tmp/splint-buildroot/usr/share/doc/splint-3.1.2 + cp -prL COPYRIGHT README faq.html install.html manual.html manual.ps.bz2 /usr/src/tmp/splint-buildroot/usr/share/doc/splint-3.1.2 + chmod -R go-w /usr/src/tmp/splint-buildroot/usr/share/doc/splint-3.1.2 + chmod -R a+rX /usr/src/tmp/splint-buildroot/usr/share/doc/splint-3.1.2 + exit 0 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.szZvf6 find-provides: running scripts (debuginfo,lib,pam,perl,pkgconfig,python,shell) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.o4WKn7 find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,rpmlib,shebang,shell,static,symlinks) Provides: lclint = 3.1.2 Requires: /lib/ld-linux.so.2, libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1), libc.so.6(GLIBC_2.3), libc.so.6(GLIBC_2.3.4), libc.so.6(GLIBC_2.4), libc.so.6(GLIBC_2.7), rtld(GNU_HASH) Obsoletes: lclint Finding debuginfo files (using /usr/lib/rpm/find-debuginfo-files) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.LezpQp Creating splint-debuginfo package Processing files: splint-debuginfo-3.1.2-alt2.qa1 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.BJPt02 find-provides: running scripts (debuginfo) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.oQ2ZCW find-requires: running scripts (debuginfo) Requires: splint = 3.1.2-alt2.qa1, /usr/lib/debug/lib/ld-linux.so.2.debug, debug(libc.so.6) Wrote: /usr/src/RPM/RPMS/i586/splint-3.1.2-alt2.qa1.i586.rpm Wrote: /usr/src/RPM/RPMS/i586/splint-debuginfo-3.1.2-alt2.qa1.i586.rpm 57.93user 5.08system 1:52.11elapsed 56%CPU (0avgtext+0avgdata 75228maxresident)k 0inputs+0outputs (0major+2189899minor)pagefaults 0swaps 61.89user 7.17system 2:03.05elapsed 56%CPU (0avgtext+0avgdata 115228maxresident)k 0inputs+0outputs (0major+2491878minor)pagefaults 0swaps --- splint-3.1.2-alt2.qa1.i586.rpm.repo 2013-04-16 22:04:49.000000000 +0000 +++ splint-3.1.2-alt2.qa1.i586.rpm.hasher 2020-03-15 13:42:55.960132889 +0000 @@ -9,3 +9,3 @@ /usr/share/doc/splint-3.1.2/manual.ps.bz2 100644 -/usr/share/man/man1/splint.1.gz 100644 +/usr/share/man/man1/splint.1.xz 100644 /usr/share/splint 40755 --- splint-debuginfo-3.1.2-alt2.qa1.i586.rpm.repo 2013-04-16 22:04:49.000000000 +0000 +++ splint-debuginfo-3.1.2-alt2.qa1.i586.rpm.hasher 2020-03-15 13:42:55.987132893 +0000 @@ -110,2 +110,3 @@ /usr/src/debug/splint-3.1.2/src/Headers/llgrammar.h 100644 +/usr/src/debug/splint-3.1.2/src/Headers/llgrammar_gen.h 100644 /usr/src/debug/splint-3.1.2/src/Headers/llgrammar_gen2.h 100644