Fix false positives for the function calls with "const pointer to const
value" arguments: https://trac.cppcheck.net/ticket/9967.
The variable.valueType.constness have same encoding as encoding as
ValueType::constness in Cppcheck.
C89 standard defines enum members as enumeration contants at ch.
6.4.4.3, and they are always known at compile time.
This commit fix false positives for rule 18.8 (and possible other rules
that check "constentess") with enumeration members.
Fix Trac#9913
When we include the header file with variables definitions, Cppcheck
will write `variables` entries with line numbers from the header to the
dump file.
If the line number in the header file and the source file are equal,
misra.py performs an additional check what leads to false positives.
Minimal example that demonstrates the problem:
`misra_fp.c`:
```c
void test_12_3_fp(void)
{
//Initialize the events queue
QEQueue_init(&me->deferred_event_queue, me->deferred_events_queue_buf, Q_DIM(me->deferred_events_queue_buf));
}
```
`misra_fp.h`:
```c
static const uint32_t timer_max_blocking_call_us;
```
This commit closes trac ticket 9874.
When checking multiple files if the same violation is encountered from
an included file then the violation is both displayed and counted in the
error summary.
Track each violation by location and error number and if the violation
has been previously encountered then do not report it again.
This commit add two additional cases for rule 20.3:
1. Support violations in the following format: `#include file.h`
2. Better multiline include directives and inline comments support.
See added test cases for examples.
Define different sets of reserved keywords for C90 and C99.
This will fix false negative for compliant example, defined in MISRA
document, and close trac 9506.
* parser: Parse standards node at start event
This required, because we can loose data at the end event.
* misra.py: Fix 5.4 standard-dependent error
By default Cppcheck use C11 standard, so this change fix false positives
for rule 5.4 with C99.
* travis: force --std=c89 for misra.py