The bug is on line 123 of lib/analyzerinfo.cpp if (pos != std::string::npos) filename = sourcefile; else filename = sourcefile.substr(pos + 1); The test is inverted. It should be ==
This is new behaviour (built from source yesterday). The .a1 files are being written (correctly) to the specified cppcheck-build-dir. The .snalyzerinfo files are being written alongside the source file being analyzed. With the exact same command line, these files used to also go into the specified cppcheck-build-dir. This behaviour was introduced recently. (roughly) my command line: cppcheck --enable=all --inline-suppr --project=compile_commands.json --cppcheck-build-dir=cppcheck --xml
This is new behaviour (built from source yesterday). The .a1 files are being written (correctly) to the specified cppcheck-build-dir. The .snalyzerinfo files are being written alongside the source file being analyzed. With the exact same command line, these files used to also go into the specified cppcheck-build-dir. This behaviour was introduced recently. I don't have time to investigate further.