| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| int main(int argc, char* argv[]) | |
| { | |
| int i; | |
| int result = 0; | |
| for (i = 1; i < argc; ++i) { | |
| if (strcmp(argv[i], "-bad") == 0) { | |
| fprintf(stdout, "stdout from bad command line arg '-bad'\n"); | |
| fprintf(stderr, "stderr from bad command line arg '-bad'\n"); | |
| return 1; | |
| } | |
| if (strcmp(argv[i], "-error") == 0) { | |
| // The real cppcheck allows to set the exitcode with --error-exitcode | |
| result = 5; | |
| } | |
| } | |
| fprintf(stderr, | |
| "[/foo/bar.c:2]: (error) Array 'abc[10]' accessed at index 12," | |
| " which is out of bounds.\n"); | |
| fprintf(stderr, | |
| "[/foo/bar.c:2]: (warning) Member variable 'foo::bar' is " | |
| "not initialized in the constructor.\n"); | |
| fprintf(stderr, "[/foo/bar.c:2]: (style) C-style pointer casting.\n"); | |
| fprintf(stderr, | |
| "[/foo/bar.c:2]: (performance) Variable 'm_message' is " | |
| "assigned in constructor body. Consider performing " | |
| "initialization in initialization list.\n"); | |
| fprintf(stderr, | |
| "[/foo/bar.c:2]: (portability) scanf without field width " | |
| "limits can crash with huge input data on some versions of " | |
| "libc\n"); | |
| fprintf(stderr, | |
| "[/foo/bar.c:2]: (information) cannot find all the include " | |
| "files (use --check-config for details)\n"); | |
| return result; | |
| } |