PeterSchops
7199dde161
Fix issue in misra 9 x ( #3409 )
2021-08-21 22:01:24 +02:00
Daniel Marjamäki
6e4acbd3bc
misra: implement rule 21.19
2021-08-19 06:58:49 +02:00
Daniel Marjamäki
8700d1b86d
update misra test
2021-08-16 20:46:37 +02:00
Daniel Marjamäki
864d6462d0
misra: implement rule 21.16
2021-08-15 20:50:20 +02:00
Daniel Marjamäki
ecba12a6b8
misra: improved generateTable
2021-08-15 20:12:51 +02:00
Daniel Marjamäki
8d67653de3
misra: implement rule 21.14
2021-08-15 19:23:51 +02:00
Daniel Marjamäki
682c4510a9
misra: implement rule 1.4
2021-08-15 13:39:14 +02:00
Daniel Marjamäki
6ddb8388ed
misra: implement rule 21.21
2021-08-15 13:38:04 +02:00
Daniel Marjamäki
10c2dcf721
misra: implement rule 22.7
2021-08-15 12:04:55 +02:00
Daniel Marjamäki
b3034a5628
misra: implement rule 22.9
2021-08-15 07:46:32 +02:00
Daniel Marjamäki
5313a40c3b
misra; implement rule 22.8
2021-08-14 19:24:31 +02:00
Daniel Marjamäki
4b126db9ca
misra: implement rule 22.10
2021-08-13 18:03:37 +02:00
Paul Fultz II
2a3657154b
Dont require __main__ for an addon ( #3363 )
2021-08-12 20:17:51 +02:00
Daniel Marjamäki
f85f3c28e1
misra; implement rule 21.15
2021-07-30 15:53:10 +02:00
Daniel Marjamäki
e08ee3bac7
addons; Add get_function_call_name_args
2021-07-24 19:34:11 +02:00
Daniel Marjamäki
4baf221a6b
misra; implemented rule 21.2
2021-07-22 20:39:04 +02:00
Daniel Marjamäki
388b7a0fae
misra; implemented rule 20.12
2021-07-22 19:51:31 +02:00
Daniel Marjamäki
a65fa9b682
misra; implement rule 20.11
2021-07-22 16:11:25 +02:00
Daniel Marjamäki
3ba4696f4f
misra; implement rule 20.9
2021-07-22 12:08:51 +02:00
Daniel Marjamäki
74ab8f1a48
misra; implemented rule 20.8
2021-07-22 08:46:28 +02:00
Daniel Marjamäki
d2843b70ca
misra; implement rule 10.7
2021-07-21 19:18:12 +02:00
Daniel Marjamäki
fb8d6daf79
misra; implement rule 10.5
2021-07-21 15:25:01 +02:00
Daniel Marjamäki
f5fe562050
misra; improved checking of 10.3
2021-07-21 10:56:17 +02:00
Daniel Marjamäki
4428efbd2b
misra; improved essential type for composite expressions
2021-07-21 08:20:15 +02:00
Daniel Marjamäki
b409d4a598
misra; implement rule 16.1
2021-07-20 20:40:42 +02:00
Daniel Marjamäki
e72e59f934
misra; implement rule 12.4
2021-07-20 19:50:31 +02:00
Daniel Marjamäki
937146127a
misra; fix essential type for integer literals
2021-07-20 18:27:49 +02:00
Daniel Marjamäki
bc43bfcb73
misra; fix essential type for comparisons and logical operators
2021-07-20 16:50:43 +02:00
Daniel Marjamäki
b320a092d0
misra; fix essential type for char literals
2021-07-20 16:39:59 +02:00
Daniel Marjamäki
6f7722873e
CI; specify unix64 platform when running misra-test
2021-07-20 12:23:16 +02:00
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
Georgiy Komarov
35a42cd0fe
cppcheckdata: Make the source files for configuration public ( #3030 )
...
Extend CppcheckData class API to make the list of source files public.
This can be used by custom addons.
2021-01-08 22:59:58 +01:00
Georgiy Komarov
13b8ee8871
cppcheckdata: Use instance attributes in Cppcheckdata ( #3029 )
...
This commit makes CppcheckData class to use instance attributes instead
of class attributes.
Since class attributes are mutable (list), when you append to them, they
don't promote to instance variable which means when you call parsedump()
multiple times data just gets appended to them.
Found by samed on the forum:
https://sourceforge.net/p/cppcheck/discussion/general/thread/c6e1210ec2/
2021-01-08 10:25:51 +01:00
Georgiy Komarov
82f51bd523
misra: Fix crash on rule 9.x ( #3024 )
...
Closes ticket #10084
2021-01-07 15:04:12 +01:00
kskjerve
c22290f5a3
Fix #10043 unexpected designator ( #2966 )
2020-12-21 13:25:41 +01:00
kskjerve
d4860f500a
MISRA 9.2 to 9.5 ( #2954 )
2020-12-16 17:28:54 +01:00
Daniel Marjamäki
a810678b83
Addons: handle inline suppressions internally in cppcheckdata
2020-12-05 11:37:09 +01:00
Daniel Marjamäki
02d927f0f9
Temporarily disable misra suppressions test
2020-12-04 21:16:02 +01:00
Daniel Marjamäki
649a754cfd
Revert "Addons: handle inline suppressions internally in cppcheckdata"
...
This reverts commit 1ce78a1086
.
There was regressions in handling of suppressions.
2020-12-04 18:05:47 +01:00
Ivar Andreas Bonsaksen
9029fff59d
Fixed #9993 (false positive: misra-c2012-9.2) ( #2908 )
2020-11-18 10:50:35 +01:00
Ivar Andreas Bonsaksen
0e7ec1eddf
Fixed #9988 (false positive: misra-c2012-9.2) ( #2904 )
2020-11-16 17:31:00 +01:00
kskjerve
4d3f76b63c
MISRA rule 9.2 The initializer for an aggregate or union shall be enclosed in braces ( #2899 )
2020-11-16 09:27:17 +01:00
Daniel Marjamäki
43c4a48d48
Fixed #9971 (missing system includes in addon/test test files)
2020-11-15 12:46:28 +01:00
Daniel Marjamäki
9a81d17a58
cppcheckdata: Add Scope.varlist
2020-11-13 21:03:02 +01:00
Daniel Marjamäki
c7f816f986
Misra refactorings
2020-11-13 07:21:34 +01:00
Lars Even Almaas
3a91b998d6
MISRA rule 10.2 Expressions of essentially character type in additions and subtraction ( #2897 )
2020-11-12 11:37:28 +01:00
Daniel Marjamäki
2ae91b9ffe
Try to fix addon suppressions tests
2020-11-11 20:28:26 +01:00
Daniel Marjamäki
1ce78a1086
Addons: handle inline suppressions internally in cppcheckdata
2020-11-11 20:01:58 +01:00
Daniel Marjamäki
7e8839a991
Addons: Reuse cppcheckdata.simpleMatch
2020-11-11 14:24:55 +01:00
Lars Even Almaas
9d70926fcd
MISRA rule 15.4 Only one break/goto from iteration statement ( #2892 )
2020-11-09 15:11:08 +01:00
Georgy Komarov
9cbb09076c
misra.py: Fix R7.2 crash on va_args ( #2886 )
2020-11-05 23:54:12 +01:00
Lars Even Almaas
c1212f823f
MISRA rule 7.2 Require 'u' prefix when using large unsigned integer constants ( #2881 )
2020-11-05 13:38:09 +01:00
Georgy Komarov
6f7f508967
misra.py: Fix 7.4 false positive ( #2883 )
...
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.
2020-11-05 08:13:23 +01:00
Lars Even Almaas
05b804d126
MISRA Rule 7.4 Check if variables assigned as string literals are const ( #2866 )
2020-11-04 13:45:02 +01:00
Georgy Komarov
b87aaaac52
Fix and impove MISRA 6.1 and 6.2 rules ( #2863 )
2020-10-28 20:54:43 +01:00
Lars Even Almaas
79b9dd5345
MISRA Rule 6.1/6.2 Bit field check ( #2861 )
2020-10-27 16:00:19 +01:00
amai2012
2fa837c716
threadsafety shall not warn about const vars (in C++11) ( #2847 )
...
threadsafety shall not warn about const vars (in C++11)
For C++03 a new id threadsafety-const was created.
2020-10-23 11:58:25 +02:00
Georgy Komarov
3944e70e02
misra.py: Treat enum constants as constant known at compile time ( #2823 )
...
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
2020-09-25 21:02:34 +02:00
Daniel Marjamäki
687b44dbb7
Token: add flag for splitted variable declaration with initialization
2020-09-09 16:22:47 +02:00
Daniel Marjamäki
6e4085f3d8
Misra: Write 12.3 warnings in structs/classes
2020-09-08 09:29:57 +02:00
Daniel Marjamäki
f3fa7a6f5e
misra: updated test addons/test/misra/misra-test.cpp
2020-09-06 13:25:37 +02:00
Daniel Marjamäki
9a943e7616
misra: rewrote rule 12.3
2020-09-06 11:33:37 +02:00
Daniel Marjamäki
7969bf7ae8
Token: Add 'isSplittedVarDecl attribute
2020-09-06 11:02:22 +02:00
Georgy Komarov
4738da3d69
misra.py: Fix R12.3 FP on calling functions in function arguments ( #2778 )
2020-09-05 07:53:56 +02:00
Georgy Komarov
e21bdb985c
misra.py: Fix 12.3 FP for variables defined in headers ( #2773 )
...
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.
2020-09-04 20:58:32 +02:00
Daniel Marjamäki
c6d2e0fae1
Fixed #9830 (Addons should return 0 when success)
2020-08-29 07:44:32 +02:00
Georgy Komarov
3bae716fd4
misra.py: Fix 20.7 false positive for multi-character arguments
...
See: https://trac.cppcheck.net/ticket/9633#comment:3
2020-08-08 13:03:19 +03:00
Georgy Komarov
dc1faa71ed
misra.py: Fix false negatives in string concatenation for rule 20.7
...
This will fix Trac#9633
2020-07-24 07:15:40 +03:00
Georgy Komarov
fc504ed6c3
misra.py: Fix false positives on macro expansion
...
This will fix Trac#9634
2020-07-21 20:03:04 +03:00
Richard A. Smith
41a846d8a7
misra.py: Squelch duplicate violation messages
...
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.
2020-07-19 08:42:35 -03:00
Daniel Marjamäki
33388217a5
new default branch is main
2020-06-15 20:04:57 +02:00
Carl-Oskar Larsson
2abf542838
Misra severity ( #2674 )
2020-06-08 15:58:17 +02:00
Georgy Komarov
90550d24c4
misra.py: Fix crash on volatile macro argument ( #2654 )
2020-05-21 08:34:28 +02:00
Ken-Patrick Lehrmann
a96a879b6d
Fix crash in addons/test/test-misra.py ( #2652 )
2020-05-20 16:02:13 +02:00
Georgy Komarov
61926ed7c3
misra.py: Fix false positive for rule 15.6 ( #2631 )
2020-05-07 16:54:27 +02:00
felwolff
b65d72aeb6
misra.py: Fix 5.1 and 5.2 FP for c99 ( #2625 )
2020-04-28 07:18:54 +02:00
Georgy Komarov
20b02bff30
misra.py: Fix 20.7 FP for struct members ( #2624 )
...
This will close Trac#9673
2020-04-27 09:10:58 +02:00
Daniel Marjamäki
75a369d217
cppcheckdata: Set Function.nestedIn attribute
2020-04-16 12:25:03 +02:00
amai2012
3be79aee98
Cure invalid constant
...
https://lgtm.com/projects/g/danmar/cppcheck?mode=list poined out this "implicit string concatenation"
2020-04-14 15:47:44 +02:00
fuzzelhjb
9267182d8c
False positive fix ( #2593 )
...
* only report cert-STR07-C for C11
* fix false positive for checking c89/c99 code with cert-STR07-C
2020-04-07 07:29:49 +02:00
Georgy Komarov
4e5a8fac4a
misra.py: Handle stdint.h essential types ( #2555 )
...
Add stdint.h essential types to misra.py checks. This will fix false
negatives for rules 10.6 and 10.8.
2020-02-27 11:28:48 +01:00
Armin Müller
75b1ade316
Typos found by running "codespell" ( #2542 )
2020-02-17 18:28:58 +01:00
Georgy Komarov
9155f3a83a
misra.py: Check switch-clauses in R15.3 ( #2538 )
...
* misra.py: Check switch-clauses in R15.3
* break on violation
2020-02-16 00:03:18 +01:00
Georgy Komarov
2138091fa3
misra.py: Fix rule 20.2 false negative ( #2534 )
2020-02-12 17:11:56 +01:00
Georgy Komarov
403a61bc11
misra.py: Handle spaces in directive arguments ( #2532 )
2020-02-11 20:59:11 +01:00
Daniel Marjamäki
099dd57eb8
Fixed #9625 (false negative: misra-c2012-13.1)
2020-02-11 18:00:41 +01:00
Georgy Komarov
583d5e5958
misra.py: Add standard library functions for C90 and C99 ( #2524 )
...
This is required to add additional analysis for some MISRA rules.
This commit improve R21.1 check and close trac ticket 9603.
2020-02-11 11:10:54 +01:00
Georgy Komarov
0ff23dbd0b
misra.py: Handle more cases in Rule 20.3 check ( #2529 )
...
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.
2020-02-10 08:56:26 +01:00
Georgy Komarov
f438cc6105
misra.py: Fix rule 21.1 false positives ( #2526 )
...
According MISRA standard, rule 21.1 should hanlde define/undef
directives only. There are no mentions of other C identifiers in the
standard document.
2020-02-09 16:22:26 +01:00
Georgy Komarov
6d4eff46be
misra.py: Fix false negative for rule 20.4 ( #2528 )
...
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.
2020-02-09 10:46:13 +01:00
Georgy Komarov
5eaf437c44
misra.py: Fix R5.4 false positives with C99 ( #2516 )
...
* 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
2020-01-31 23:38:41 +01:00
Georgy Komarov
86d0f62d36
misra.py: Fix 12.3 FP in initializer lists ( #2489 )
...
See: trac 9581
2020-01-15 09:55:59 +01:00
mlambacher
3ada7672f3
Fix potential typo: use token.next.linenr instead of token.linenr ( #2483 )
...
Also make use of defaultdict to minimize risk of similar typos in the future and to clean up the code
2020-01-09 19:31:18 +01:00
elfel19
a288ea3c1f
improve misra analysis perf for misra_5_4, misra_5_5, misra_20_1 ( #2329 )
...
fix bad indent
2020-01-08 06:54:43 +01:00
Daniel Marjamäki
33c8b71467
Revert "addons; import cppcheckdata from local folder"
...
This reverts commit 05b96d42e9
.
2019-12-30 17:30:17 +01:00
Daniel Marjamäki
05b96d42e9
addons; import cppcheckdata from local folder
2019-12-30 09:13:04 +01:00
Georgy Komarov
d977761e76
addons: Reduce memory consumption ( #2395 )
...
* addons: Reduce memory consumption
Parse dump files incrementaly using ElementTree.iterparse. Clean unused
resources during parsing. This method is explained in following
article: https://www.ibm.com/developerworks/xml/library/x-hiperfparse/
Memory consumption was reduced about 30% (measured with mprof),
execution time increased about 5% (measured with time utility).
More description available in PR.
* Switch to lxml and update iterparse routines
Use lxml module instead default xml.etree. Lxml provides convenient
wrappers around iterparse method that accepts `tag` argument. That
easer incremental parsing routines to select specific tags from roottree
like `dump` and `dumps`.
Element.clear() method was replaced by `lxml_clean` because lxml
keeps additional information to nodes that should be removed.
Added note about large consumption RAM on large dump files.
This commit doesn't solve this problem completely, but provides a way
to improve current parser to add incremental Configuration serialization
later.
* Working on iterative parser
* Added iterative Configurations parser
* fix
* Fix varlist iteration
* make sure that standards node was loaded
2019-12-27 08:50:56 +01:00
Georgy Komarov
730ea4163b
misra.py: Handle essential type categories for ternary operations ( #2455 )
...
This commit will add feature to detect essential type categories
for operators of ternary operation.
This fixes issues with rule 10.1 and close the following ticket:
https://trac.cppcheck.net/ticket/9543
2019-12-21 07:40:15 +01:00
Georgy Komarov
aadb35888f
misra.py: Fix 12.3 FP ( #2454 )
...
This will close https://trac.cppcheck.net/ticket/9544
2019-12-19 15:55:51 +01:00
Georgy Komarov
d0dd200444
misra.py: Fix R12.3 false negative in variables declaration ( #2453 )
...
Make rule 12.3 check detect commas in the variables declaration code.
2019-12-19 08:36:10 +01:00
Daniel Marjamäki
7977bbf456
Revert "misra.py: Fix R12.3 false negative in variables declaration ( #2431 )"
...
This reverts commit 7ce8ae408a
.
2019-12-18 13:31:52 +01:00