CMake/Tests/RunCMake/pseudo_cppcheck.c
Bill Hoffman 3bbe95f58a Clean up iwyu code to not be one big if statement.
This commit changes the internal -E__run_iwyu to be -E__run_co_compile. This
is used for co-compile commands. These are tools that want to mirror the
compiler. For each compiler invocation the tool will be invoked first. This
started as a way to implement include what you use (iwyu), but has expanded
to include cpplint, cppcheck and others. Likely there will be more in the
future as well. This commit implements each one in its own function and
provides a way to add additional ones in the future with less work.
2017-09-13 17:44:49 -04:00

33 lines
1.3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
int i;
for (i = 1; i < argc; ++i) {
if (strcmp(argv[i], "-bad") == 0)
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;
}
}
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");
// we allow this to return 1 as we ignore it
return 1;
}