`syntaxError` in include is hidden - leading to suspected false negative
test.h
enum Type
{
ERROR
};
struct A
{
};
test.cpp
#include "test.h"
extern void f()
{
A a; // unusedVariable
}
In Cppcheck 2.4 the header will generate a syntaxError with the Windows version:
test.h:1:1: error: syntax error [syntaxError]
enum Type
^
This leads to the unusedVariable in function f() not being reported making it seems like a false negative since the syntaxError is being suppressed as it didn't occur in the file we are analyzing.
We need to make this error visible - possibly via a global warning about this.
There's most likely other errors which may lead to the same problem.
I wonder if there is a hook to simply not run if there are syntax errors. I know that is how many people set up File Watchers in IntelliJ products.
This syntax error is a bug in Cppcheck. Also Cppcheck is built to being able to handle incomplete and invalid code.
There's also cases where it could be caused by a simple misconfiguration.
I came across this while working on code and trying to figure out the "false negative" of a unused variable not being reported which turned out to be this issue in the header.
I already know how to fix it but I want to get #60 in before since it simplifies things.
A preview of the fix I am currently testing:

I am not sure if you can put links in such in messages. Being able to directly jump to the file/line in question would be awesome.
Note: A potential fix for https://trac.cppcheck.net/ticket/11913 might affect this.