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... Finished checking --- 9 code warnings, as expected argorder4.c: (in function h) argorder4.c:35:10: Unreachable code: return (add((pri... Finished checking --- 1 code warning, as expected argorder5.c: (in function f) argorder5.c:8:9: Variable name used after being released argorder5.c:8:17: Storage name released argorder5.c:9:19: Variable name used after being released argorder5.c:9:12: Storage name released argorder5.c:10:28: Argument 2 modifies *name, used by argument 1 (order of evaluation of actual parameters is undefined): test2(copystring(name), f(name)) Finished checking --- 3 code warnings, as expected