Daniel Marjamäki
d467505696
misra; update essential type for variables
2021-07-19 17:12:24 +02:00
Daniel Marjamäki
657d530fa1
misra; implement rule 10.3
2021-07-19 14:54:17 +02:00
escherstair
2d57f60225
Misra: improve misra.py ( #3343 )
2021-07-19 14:29:53 +02:00
Daniel Marjamäki
d1fe34e167
misra; implement rule 8.10
2021-07-18 21:18:07 +02:00
Daniel Marjamäki
5f548a4b6c
misra; implement rule 8.9
2021-07-18 10:31:52 +02:00
Daniel Marjamäki
59c797c776
misra; implement rule 8.8
2021-07-17 23:38:29 +02:00
Daniel Marjamäki
f44a82856f
misra; implement rule 8.7
2021-07-17 22:36:03 +02:00
Daniel Marjamäki
77d8b714ea
misra; implement rule 8.6
2021-07-17 21:24:53 +02:00
Daniel Marjamäki
aa910d3c38
misra; implemented rule 8.5
2021-07-17 19:59:21 +02:00
Daniel Marjamäki
e4ae4471e8
misra; implement rule 11.2
2021-07-11 20:55:54 +02:00
Daniel Marjamäki
9d5c65fcce
CI; Improved testing of misra addon
2021-07-11 17:24:14 +02:00
Daniel Marjamäki
754d648b0f
misra; implement rule 11.1
2021-07-11 07:50:13 +02:00
Daniel Marjamäki
009c144455
misra; implement rule 8.4
2021-07-10 20:10:44 +02:00
Daniel Marjamäki
599a559351
misra; implement rule 5.9
2021-07-10 12:51:40 +02:00
Daniel Marjamäki
c77235f12c
misra; implement rule 5.8
2021-07-09 09:47:23 +02:00
Daniel Marjamäki
db58952a33
Addons CTU; pass all filenames for whole program analysis in file instead of through command line
2021-07-09 08:33:07 +02:00
Daniel Marjamäki
e05a9d7e65
misra: implement rule 2.5
2021-07-08 22:03:27 +02:00
Daniel Marjamäki
4ecf3ccd17
misra: implement rule 22.5
2021-07-07 23:00:12 +02:00
Daniel Marjamäki
cf049cb759
misra: implement rule 5.7
2021-07-07 21:47:17 +02:00
Daniel Marjamäki
859e541661
misra: implement rule 2.4
2021-07-07 20:30:52 +02:00
Daniel Marjamäki
13d55c7060
misra; implement rule 2.3
2021-07-07 15:16:53 +02:00
Daniel Marjamäki
00a9671f46
misra: implement 8.1
2021-07-07 13:34:55 +02:00
Daniel Marjamäki
9172f2ab3b
addons; add CTU infrastructure
2021-07-07 10:58:13 +02:00
Georgiy Komarov
81eabb5f61
addons: Fix arguments parser when running pytest ( #3327 )
2021-07-06 22:13:04 +02:00
Georgiy Komarov
6f389014f1
cppcheckdata: Fix crash on an empty union ( #3326 )
2021-07-06 17:01:58 +02:00
Georgiy Komarov
426117a30d
misra: Improve warning messages for rule 8.2 when the missing arguments are on the next line ( #3320 )
...
This makes it easier for the user to find the violation.
Suggested in the forum: https://sourceforge.net/p/cppcheck/discussion/development/thread/801dc07e59/#a1a8/d3e9/c455/8915/747c/2525/0eb8/0f7d
2021-07-01 21:08:40 +02:00
Georgiy Komarov
10123b4ad2
misra: Emit more accurate warnings for unused arguments in rule 2.7 ( #3314 )
...
Make the MISRA addon emit extra warnings for unused arguments placed in
lines other than the function definition. This makes it easier for the
user to find violations.
2021-06-29 11:17:38 +02:00
Georgiy Komarov
a2cb9f17c1
misra: Don't consider variadic arguments as the violation of rule 2.7 ( #3315 )
...
The MISRA 2012 standard does not say anything about variadic functions
in the definition of rule 2.7. Therefore, these cases should be
considered as false positives.
2021-06-29 08:46:35 +02:00
Georgiy Komarov
62dbe2eb2f
misra: Fix false positives for rule 8.2 ( #3311 )
...
Reported in the forum: https://sourceforge.net/p/cppcheck/discussion/development/thread/801dc07e59/?page=1&limit=25#a1a8
2021-06-27 22:57:50 +02:00
Georgiy Komarov
6432922c76
misra: Fix crash on rule 8.2 ( #3310 )
...
The example code that reproduces this crash:
```
int misra_8_2_o(
const uint32_t a1,
const uint8_t *const a2
)
{ return *a2 + a1; }
int misra_8_2_p(
const uint32_t a1,
const uint8_t *const a2
);
```
The unit test was not added because it looks like a typo and regressions
are unlikely.
2021-06-27 22:57:37 +02:00
Georgiy Komarov
b89f5fbeff
misra: Fix 8.2 false positives ( #3309 )
...
* misra: Fix 8.2 false positives
Fix false positives in rule 8.2 that occurred in cases when we have a
function definition and declaration in the same file.
For example, the following code generated false positives before this
commit:
```
void f(uint8_t * const x);
void f(uint8_t * const x)
{ (void)x; }
```
We need to distinguish the declaration and the definition, so the dump
file generation routine was extended to keep token where the definition
of the function. The analysis in the addon also been improved.
Closes Trac issue: https://trac.cppcheck.net/ticket/10219
2021-06-27 10:51:32 +02:00
Georgiy Komarov
452c92494e
misra: Fix 8.2 false positives ( #3306 )
...
Type declaration on the next line is not allowed in rule 8.2. But we
need to make sure that the files of the checked files are the same.
Reported on the forum: https://sourceforge.net/p/cppcheck/discussion/development/thread/801dc07e59/#32c3/e90b/293e/39df/85b3/b821/e0c3
2021-06-25 16:06:29 +02:00
Georgiy Komarov
79f59d8f39
misra: Fixed crash with struct fields with unknown types on 9.x rules ( #3305 )
...
This fixes the crash on with struct fields containing unknown types
reported on the forum:
https://sourceforge.net/p/cppcheck/discussion/general/thread/d64551cc55/#5f0f
The suggested patch doesn't handle the cases when there are struct
fields with arrays containing unknown types. So the addon will not
generate warnings in these cases. The problem is that Cppcheck doesn't
generate valueType-pointer information for unknown types in the dump
file. When adding this in symboldatabase.cpp, MISRA addon will generate
a lot of false positives because we depend on the null value of
valueType.
So I suppose it better to left this as is, to don't break the addon for
such rare cases.
2021-06-24 08:29:27 +02:00
Ivar Andreas Bonsaksen
dc582560cc
Add default parameter to next() to prevent StopIteration exception when no corresponding rawToken is found for '[' token ( #3301 )
...
Co-authored-by: Ivar Bonsaksen <ivar.bonsaksen@microchip.com>
2021-06-19 20:24:21 +02:00
Ivar Andreas Bonsaksen
e3b7ceec7e
Fix issue where misra 9_x evaluation crashes on some undefined structs with nested initialisers ( #3290 )
2021-06-04 17:19:40 +02:00
Daniel Marjamäki
04c9a8329a
misra: Removed some rules from getCppcheckRules() because those do not exist
2021-05-29 09:23:33 +02:00
Georgiy Komarov
7a009fece0
misra: Add support for expected suppressions in header files in `-verify` mode ( #3252 )
...
This commit allows to specify expected suppressions in the included
header files. This is necessary to verify MISRA checkers, which make
requirements for header files. For example, Rule 8.2 requires adding
prototypes for each function to the header files.
2021-05-08 10:27:31 +02:00
Daniel Marjamäki
f7d0bf7a59
Refactoring; Reuse simplecpp::characterLiteralToLL
2021-05-02 13:44:37 +02:00
Georgiy Komarov
e1bfd369db
misra: Fix false positives for rule 7.3 ( #3236 )
...
Fix false positives for the identifiers that contain 'ul' in their names.
Reported on the forum: https://sourceforge.net/p/cppcheck/discussion/general/thread/c326538221/
2021-04-27 19:42:34 +02:00
Georgiy Komarov
fce3db8b7d
misra: Fixed a crash in rule 8.2 ( #3208 )
...
Due to incorrect indentation, we return "None" instead of an empty list,
which causes the crash.
The problem was reported on the forum: https://sourceforge.net/p/cppcheck/discussion/general/thread/e146b8d779/
2021-04-13 10:09:42 +02:00
Paul Fultz II
5077663684
Fix issue 9979: false positive: containerOutOfBounds with conditional resize ( #3136 )
2021-03-30 14:02:28 +02:00
Lars Even Almaas
9786f1c34b
Suggested implementation for rule 8.2 ( #3169 )
2021-03-25 08:25:43 +01:00
Georgiy Komarov
390a5af064
misra.py: Fix crashes on obsolete GCC syntax for struct initialization ( #3175 )
...
* misra.py: Fix crashes on obsolete GCC syntax for struct initialization
* Added expected violations
2021-03-20 13:59:39 +01:00
JuPrgn
0f2855af0b
Fix misra parameter typo ( #3166 )
2021-03-08 16:01:55 +01:00
Daniel Marjamäki
170c8257b2
Revert "Small refactoring"
...
This reverts commit 103e0d883c
.
2021-03-07 10:39:23 +01:00
Daniel Marjamäki
103e0d883c
Small refactoring
2021-03-07 09:03:50 +01:00
Daniel Marjamäki
ebf54ac53e
Misra; Remove 12.4 because the check is not implemented properly
2021-02-25 22:11:13 +01:00
Daniel Marjamäki
22727ee3ab
Addons; split up possible/known values and impossible values. This is inconsistent with core Cppcheck, however the addons do not handle impossible values in general. A future improvement might be to clarify this somehow, maybe renaming Token.values.
2021-02-23 22:40:49 +01:00
Oliver Stöneberg
b472b4e65d
some Python cleanups based on PyCharm inspections ( #2999 )
...
* some Python cleanups based on PyCharm inspections
* test-helloworld.py: adjusted assert in test_addon_relative_path()
2021-01-31 14:27:11 +01:00
Armin Müller
0de0a954d2
Typos found by running "codespell" ( #3042 )
2021-01-12 20:48:25 +01:00