Commit Graph

678 Commits

Author SHA1 Message Date
tx_haggis c0d9a76dd9
MISRA: Speed up analysis of .ctu_info files (#4666)
* Speed up analyses of .ctu_info files
Use temporary dictionaries to eliminate duplicate typedefs,
tags and macros

* Consistency: use a cache key variable
Ensures that the get and add use the same key.

* CTU perf: use dict for macros, tags & types.
2023-04-11 14:20:58 +02:00
Daniel Marjamäki 7cded1967d misra.py: Fix mistake I saw when looking at the code 2023-04-09 18:55:47 +02:00
Daniel Marjamäki 5830047fcb misra: fix misra-10.7 false positive for constant expression 2023-01-02 18:52:33 +01:00
Oliver Stöneberg 0c95971c54
added .gitattributes and normalized files (#4668) 2022-12-30 21:33:45 +01:00
dzid26 3887d6dde1
Missing rule-text-file to not stop the analysis (#4458) 2022-09-12 12:55:07 +02:00
Daniel Marjamäki 514278e02b Fixed #11181 (cppcheckdata.py: handle exception when ctu-info file is missing) 2022-08-25 11:10:39 +02:00
Daniel Marjamäki 0d9bf03b5c misra.py: do not execute premiumaddon to perform misra checks 2022-08-25 08:07:22 +02:00
g-chauvel be658e2392
misra_14_2 various fixes (#4324) 2022-08-21 20:11:10 +02:00
Paul Fultz II 72c764b034
Expose exprId to addon (#4354) 2022-08-16 22:00:31 +02:00
Paul Fultz II a8c1cdca57
Add ** to match until in addons (#4353) 2022-08-16 19:05:37 +02:00
Paul Fultz II 754250cd57
Add methods to token class in addons (#4320) 2022-07-30 11:09:22 +02:00
Daniel Marjamäki 13c80d6cce Fixed #11180 (False positive: misra-c2012-8.1 for code 'unsigned x;') 2022-07-28 20:34:56 +02:00
Oliver Stöneberg bc58f55c6e
donate-cpu: greatly improved `LibraryIncludes.get_libraries()` performance / some optimizations and cleanups (#4273)
* donate_cpu_lib.py: use `os.path.join()`

* donate-cpu: removed remaining usage of `os.chdir()`

* donate_cpu_lib.py: moved library includes code into class

* donate_cpu_lib.py: pre-compile library include regular expressions

* donate_cpu_lib.py: pre-compile some more regular expressions

* donate_cpu_lib.py: small unpack_package() cleanup and optimization

* donate_cpu_lib.py: added some information about the extracted files to unpack_package()

* donate_cpu_lib.py: bumped version

* added test_donate_cpu_lib.py

* donate_cpu_lib.py: greatly improved `LibraryIncludes.get_libraries()` performance

only scan each file once for previously undetected libraries only

* test_donate_cpu_lib.py: fix for Python 3.5

* scriptcheck.yml: added `-v` to pytest calls so we get the complete diff on assertions

* fixed `test_arguments_regression()` Python tests with additional pytest arguments

* donate_cpu_lib.py: use `subprocess.check_call()`

* test_donate_cpu_lib.py: sort results to address differences in order with Python 3.5
2022-07-13 21:09:29 +02:00
Paul Fultz II 7b549b622f
Add match function to addons (#4268) 2022-07-12 22:00:15 +02:00
Daniel Marjamäki e0bc871bae misra.py: strip error message so it does not end with \r 2022-07-08 16:11:15 +02:00
Daniel Marjamäki e64e5811ab misra.py: better handling of --get-rule-text 2022-07-08 14:06:27 +02:00
Daniel Marjamäki ef33ff628f cppcheckdata.py: fix cmd_output() function, handle errors better 2022-06-16 14:07:14 +02:00
Daniel Marjamäki 9e31d6d05d Revert "cppcheckdata.py: better handling when subprocess call fails"
This reverts commit 1cc3b46d32.
2022-06-15 19:38:40 +02:00
Daniel Marjamäki 1cc3b46d32 cppcheckdata.py: better handling when subprocess call fails 2022-06-15 17:13:14 +02:00
Daniel Marjamäki 359f6b3680 misra: enable more checks for misra c++ 2008 checking 2022-06-07 20:55:55 +02:00
Daniel Marjamäki ec13f5fe5c misra: When checking C++ code only activate certain misra c++ compliant rules. It will be supported to run the addon on C++ code. 2022-06-06 22:22:52 +02:00
Alon Alexander ea3bb8b297
Ignore copy/move constructors for function naming checks (#4134)
* Ignore copy/move constructors for function naming checks

* Also change in namingng

* Add test in naming_test.cpp
2022-06-01 06:54:31 +02:00
Daniel Marjamäki 8dbc1b802a misra: fix crash 2022-05-17 22:15:49 +02:00
Daniel Marjamäki 9b807ba047 misra: fix problems when executing premium addon 2022-05-05 14:15:09 +02:00
Daniel Marjamäki b444c002e2 Fixed #11000 (misra: crash) 2022-05-03 22:03:35 +02:00
Daniel Marjamäki d50823fd22 Fix misra crash when premium addon fails 2022-05-03 18:37:59 +02:00
Daniel Marjamäki a5e0a9fe08 cppcheckdata: if 'import pathlib' fails then print a proper error message that explains how user can solve the problem. 2022-04-22 21:39:14 +02:00
Daniel Marjamäki ea63b8e2bb misra: fix void parameter check 2022-04-01 21:34:47 +02:00
Paul Fultz II 5bea50cd36
Fix 10908: FP: uninitvar after for-loop (#3942) 2022-03-31 21:24:20 +02:00
Paul Fultz II 32ded1602b
Fix warnings in switch statements on clang (#3943) 2022-03-30 19:30:02 +02:00
Daniel Marjamäki 92316b07c8 Remove CERT addon from open source Cppcheck. The plan is to provide complete CERT C checking in Cppcheck Premium during this year. 2022-03-23 20:30:43 +01:00
Daniel Marjamäki f907bba4e5 cppcheckdata.py: code cleanup 2022-03-19 12:27:24 +01:00
Daniel Marjamäki 7728c53cb9 Addons: Variable.constness will never be None 2022-03-19 10:36:46 +01:00
Daniel Marjamäki fb89a2c742 misra: improved execution of premium addon 2022-03-16 18:59:02 +01:00
Daniel Marjamäki a6c1653ed2 Fixed #10853 (False positive: misra-c2012-16.3: macro parameter "default") 2022-03-13 19:58:27 +01:00
Daniel Marjamäki ee0d93e5da Fixed #10861 (False positive: CERT-API01: only warn about char/wchar arrays.) 2022-03-13 16:42:07 +01:00
Daniel Marjamäki df2c8f3a65 Fixed #10862 (Misplaced warning: misra-2.2: macros) 2022-03-13 13:15:38 +01:00
Daniel Marjamäki 7290ec0db6 cppcheckdata: remove debug output 2022-03-09 21:38:44 +01:00
José Martins b1e92fc399
Misra false positive fixes for rules 8.7 and 5.9 (#3844)
* Fix misra 8.7 false positives on single function usage

When there is a single usage of a function, we should first check if the
file it is used in, is the same one it was defined in. When this is not the
case, there is no violatior to be reported.

* Fix misra rule 5.9 false positives for exception

The exception for rule 5.9 described in the guidelines allows for
multiple definitions of internal linkage obejcts when these regard a
static inlined function defined in the same header file.

* Fix neglecting of inline keyword flag upon simplifications

When the inline keyword is being "simplified" and the inline flag is
degated to the next token. However, this information might be lost if the next
token itself is simplified/deleted in a futher pass. Therefore, we must
propagated the flag to all the next named tokens, so we can make sure the
function name token itself is tagged with this property.

* add tests for misra addon rules 8.7 and 5.9
2022-02-27 19:17:48 +01:00
Daniel Marjamäki 03deb4d31e addons: interface with premiumaddon if it exists 2022-02-24 16:08:59 +01:00
Daniel Marjamäki 3dd200930a Revert "misra,cert: use premiumaddon if it exists"
This reverts commit ef28c579bf.
2022-02-23 22:38:41 +01:00
Daniel Marjamäki f68b219300 Revert "cppcheckdata: a bit better handling for windows"
This reverts commit ef6bbcb6ad.
2022-02-23 22:38:26 +01:00
Daniel Marjamäki ef6bbcb6ad cppcheckdata: a bit better handling for windows 2022-02-23 20:40:00 +01:00
Daniel Marjamäki ef28c579bf misra,cert: use premiumaddon if it exists 2022-02-23 20:26:31 +01:00
Daniel Marjamäki bb8b9a8001 misra: optional interactions with premium addon 2022-02-17 11:18:54 +01:00
Daniel Marjamäki 68b00b3cfc misra: fix 7.2 checking 2022-02-12 12:44:44 +01:00
Daniel Marjamäki 515649217f fix 2022-02-12 07:47:26 +01:00
Georgiy Komarov 47e9ed6e06
cert: Fix FP on pointer types (#3800)
Closes issue 10782
2022-02-05 14:02:01 +01:00
Daniel Marjamäki ebd1fbbfd8 cert: improved check for int31-c 2022-01-20 21:09:39 +01:00
Daniel Marjamäki 31f16d01d6 fix in misra test code 2022-01-18 20:59:30 +01:00
Daniel Marjamäki 5ebcd1dd52 misra; update test there was a warning about missing return 2022-01-18 20:55:30 +01:00
Paul Fultz II ccea1da33a
Add missing valueflow attributes to cppcheckdata.py (#3663) 2022-01-02 08:11:36 +01:00
Daniel Marjamäki 5491670792 Fixed #10528 (FP: misra-c2012-8.4) 2021-12-22 18:55:28 +01:00
Daniel Marjamäki cf203e2285 misra; fix typo 2021-12-14 17:32:05 +01:00
Daniel Marjamäki d0e68e0d77 misra; add rule 17.3 2021-12-11 12:42:15 +01:00
Daniel Marjamäki 10109a5ef7 dumpfile: remove redundant Variable attributes isArgument and isLocal. Add isVolatile. 2021-11-19 17:21:27 +01:00
Daniel Marjamäki 593683ab69 Fixed #9459 (MISRA Rule 2.2: Find dead code in arithmetic operators) 2021-11-17 17:44:54 +01:00
Daniel Marjamäki 4f9a563570 Fixed #10583 (False positive: misra-15.6) 2021-11-15 21:27:36 +01:00
Daniel Marjamäki 2a64ad8dbb Fixed #10481 (misra.py: Bailing out from checking test.c since there was an internal error: Failed to ...) 2021-09-25 21:53:55 +02:00
Daniel Marjamäki 3c1ae77962 Fixed #10499 (FP: misra-c2012-10.4) 2021-09-23 10:44:38 +02:00
Dani Martin f01ffddca6
Fix in MISRA rule 6.1 check (#3458) 2021-09-22 19:25:02 +02:00
Daniel Marjamäki 4ad09f181a Fixed #10480 (FP: misra-c2012-10.4 (char)) 2021-09-22 13:02:11 +02:00
Daniel Marjamäki 47ea670eb3 Fixed #10486 (FP: misra-c2012-8.4) 2021-09-20 21:27:05 +02:00
Daniel Marjamäki adb703c09d Fixed #10487 (FP: misra-c2012-10.6 (bit fields)) 2021-09-20 20:27:43 +02:00
Armin Müller c6f8995bf0
Typos found by running "codespell" (#3463) 2021-09-20 19:51:38 +02:00
Daniel Marjamäki ee475b181d Fixed #10488 (FP: misra-c2012-10.7) 2021-09-19 20:22:30 +02:00
Daniel Marjamäki a6c98e9e60 Fixed #10482 (FP: misra-c2012-12.2) 2021-09-17 14:21:25 +02:00
Daniel Marjamäki b6abe9c5fe misra; fix test_rules_suppression 2021-09-17 08:23:48 +02:00
Daniel Marjamäki c296115cd3 misra; fixed test 2021-09-17 08:08:40 +02:00
Daniel Marjamäki b938ee69d0 Fixed #10486 (FP: misra-c2012-8.4) 2021-09-16 11:41:50 +02:00
Daniel Marjamäki 8de160a163 Fixed #10447 (FP: misra-c2012-10.3) 2021-09-12 09:12:47 +02:00
Daniel Marjamäki c120c59912 Fixed #10446 (FP: misra-c2012-10.1 (u8 & 0x42U)) 2021-09-12 08:56:07 +02:00
PeterSchops 42f66433bc
Misra add c11 keywords (#3448) 2021-09-06 20:13:15 +02:00
Daniel Marjamäki 055d111ee9 Revert "misra.py: Fixed FN for rule 21.8"
This reverts commit 870b8b9c60.
2021-08-30 19:50:36 +02:00
orbitcowboy 870b8b9c60 misra.py: Fixed FN for rule 21.8 2021-08-30 11:07:38 +02:00
Daniel Marjamäki 43fa7d2ebe misra; Robustness. Fix AttributeErrors. getEssentialType might return None. 2021-08-28 15:27:35 +02:00
Daniel Marjamäki ca047e57bf Switch from http to https on our sourceforge webpage 2021-08-28 12:46:54 +02:00
Daniel Marjamäki e1d0db38ee Fixed #10380 (FP: misra-c2012-20.9) 2021-08-22 21:13:27 +02:00
Daniel Marjamäki ac662ec07d misra: map cppcheck errors 2021-08-22 17:02:37 +02:00
Daniel Marjamäki 0662c94d83 misra: implement rule 21.20 2021-08-22 07:38:07 +02:00
Daniel Marjamäki ec301b2447 cppcheckdata.py: fixed Value::tokvalue 2021-08-22 05:56:16 +02:00
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