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