Commit Graph

301 Commits

Author SHA1 Message Date
Markus Elfring 58ebc64b2f Using compiled regular expressions for MISRA check functions (#1208)
​The method “match” was used as a module-level function in ​for loops
of implementations for MISRA check functions so far.
Use ​compiled regular expression objects instead.
Link: https://trac.cppcheck.net/ticket/8547
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
2018-05-07 22:19:39 +02:00
Daniel Marjamäki 286e300c6f misra: fix test assertion 2018-05-04 22:30:24 +02:00
Daniel Marjamäki 904e9149bf misra: fix 16.3 false negative for conditional break 2018-05-04 22:27:45 +02:00
Daniel Marjamäki 8be593db8f misra: fixed false negatives 2018-05-04 22:18:22 +02:00
Daniel Marjamäki 53e3217254 misra: updated 20.14 2018-05-04 06:37:02 +02:00
Daniel Marjamäki 8b42706158 misra: Added check for rule 20.13 2018-05-03 22:53:06 +02:00
Daniel Marjamäki 274d56d0aa misra: Added 20.14 rule 2018-05-03 22:41:12 +02:00
Daniel Marjamäki 493e243c0b misra: fix fp in 16.6 2018-05-03 10:59:09 +02:00
Daniel Marjamäki 2a9ee563c2 misra: avoid fp for essentially boolean conditions when bitfield member is used 2018-05-02 20:56:03 +02:00
Daniel Marjamäki fce7a0a128 dump: add Function::type 2018-04-30 16:52:51 +02:00
Daniel Marjamäki 2f18fbabaa Addons: Renamed classStart/classEnd to match SymbolDatabase 2018-04-28 23:06:54 +02:00
Daniel Marjamäki 975be66c63 String concatenation in array: Improved handling of macros 2018-04-28 23:01:29 +02:00
rebnridgway 995b496ddf Add suppressions to the XML dump (#1166)
* Added parsing suppressions from dump xml.

* Added code to dump suppressions to an xml file

* Added declaration for dump function

* Suppressions will now be written to the xml file when a dump is requested

* Fixed syntax error

* Removed excess whitespace

* Fixed indentation to be consistent

* Fixed indentation to be consistent

* Fixed indentation to be consistent

* Added missing include for ErrorLogger::toXml

* Fixed suggestions from pull request #1166

Switched to using ranged for loop to iterate through suppressions.
Made the line number attribute optional, rather than 0 if not specified.  This means when Python deserialises it it will be None, which is more pythonic.

* Implemented checking suppressions in reportError

This modification expects suppressions and a function to be called to write a line of output to be passed in.  The function checks if any of the suppressions match the warning (with the new Suppression.isMatch function) and if so returns None.  This change maintains the old behaviour of returning the warning text, but adds the possibility of returning None if the warning was suppressed.

* Fixed code quality warnings

* Removed more extraneous whitespace
2018-04-24 22:19:24 +02:00
Daniel Marjamäki 5e31911fcd misra.py: fix false positives in 16.3 for unconditional blocks of code 2018-04-24 09:28:24 +02:00
Daniel Marjamäki 86a9deffbf misc.py: removed bailouts 2018-04-20 08:18:49 +02:00
Daniel Marjamäki 3c48e08e6c misc.py: write debug message when valueType is None 2018-04-19 22:23:34 +02:00
Daniel Marjamäki fb89c987b0 misra.py: Improved 'isBoolExpression' 2018-04-18 16:20:54 +02:00
Daniel Marjamäki f94a2b0019 misra.py: cppcheck handle rule 20.6 2018-04-17 08:15:36 +02:00
Daniel Marjamäki d181e98d02 misc.py: Added experimental ellipsisStructArg checker that warns when struct is passed to ellipsis function 2018-04-16 13:55:12 +02:00
Daniel Marjamäki 194b4096c2 renamed misc test file since it has c++ code 2018-04-16 13:17:47 +02:00
Daniel Marjamäki d65f00fe2e misc.py: Add check for implicitly virtual functions 2018-04-16 13:16:53 +02:00
Daniel Marjamäki 9579b12be9 misc.py: fixed FP 2018-04-16 12:55:27 +02:00
Daniel Marjamäki 19591298f1 misc.py: Fixed FP for string concatenation 2018-04-16 10:53:29 +02:00
Daniel Marjamäki 7031cc7e22 misc.py: Add addon for some misc checkers 2018-04-13 22:19:47 +02:00
Daniel Marjamäki 97c86ff0e6 Dumps: Added isVirtual/isImplicitlyVirtual info 2018-04-13 21:15:43 +02:00
Daniel Marjamäki 8f21ba91e3 cert.py: Fix FP 2018-04-12 20:23:50 +02:00
Daniel Marjamäki 1767fe525b Addons: Fixed handling of noname arguments 2018-04-10 11:10:10 +02:00
Sebastian d46e4c1df6
misra.py: Typo in number of rules (comment) (#1150)
I have no copy of the misra pdf but according to
https://sourceforge.net/p/cppcheck/discussion/general/thread/ccbe9e89/#a6ab
and the number of lines/rules printed by misra.py -generate-table i
guess 143 is really the correct number of rules.
2018-04-10 08:55:25 +02:00
Daniel Marjamäki 97b17d50aa cert.py: fixed fp in exp05 for non-pointer casts 2018-04-03 15:12:01 +02:00
Daniel Marjamäki d31ba0ca02 misra.py: updated 11.8 2018-04-03 15:11:25 +02:00
Daniel Marjamäki 2db7c6e1a3 cert.py: Add rule EXP-05: do not cast away const 2018-04-03 13:35:19 +02:00
Daniel Marjamäki 1270ae2ad8 cppcheckdata: fixed loading of function data 2018-04-03 13:20:21 +02:00
Daniel Marjamäki 4a36520af2 misra.py: reformatting -generate-table output 2018-04-02 13:04:44 +02:00
Daniel Marjamäki 15218b388f misra.py: Add -generate-table option that shows what rules are implemented 2018-03-31 12:52:00 +02:00
Daniel Marjamäki ed8fda571b misra.py: Add rule 4.1 2018-03-31 12:17:55 +02:00
Daniel Marjamäki 588ec80122 misra: the user must provide the rule texts in text file. 2018-03-24 13:28:40 +01:00
amai ed25e21929 Set executable bit for addons/ python scripts 2018-03-20 20:54:59 +01:00
Daniel Marjamäki 480d84d69c Fixed #8441 (MISRA Addon: FP 12.3 issued for initializer lists) 2018-03-18 22:05:31 +01:00
amai2012 449dcc15e8 Add links to external references 2018-03-16 08:12:39 +01:00
Daniel Marjamäki 1110cd0c57 misra.py: updated parsing of misra-rules.txt 2018-03-14 23:00:17 +01:00
Daniel Marjamäki c74b0934e9 misra.py: assume that '0' and '1' have essentially boolean types 2018-03-14 14:54:05 +01:00
Daniel Marjamäki b8d0da31de threadsafety.py: warn for local static non-class variables also 2018-03-14 11:55:01 +01:00
Daniel Marjamäki 08ee5709ed misra.py: updated 17.1 to catch non-compliant code in example suite 2018-03-14 09:41:23 +01:00
Daniel Marjamäki 348232a599 misra.py: catch all 15.6 bugs in misra exemplar suite 2018-03-13 14:22:25 +01:00
Daniel Marjamäki 49c8e42b30 misra.py: Clarify code for switch case fallthrough 2018-03-13 13:14:26 +01:00
Daniel Marjamäki caf0789ab3 misra.py: updated -verify behaviour, print all errors seen and not just the first 2018-03-12 15:51:41 +01:00
Daniel Marjamäki a705391054 misra.py: minor update 2018-03-12 15:47:06 +01:00
Daniel Marjamäki 77318d0e14 misra.py: updated 16.3 code 2018-03-12 15:16:57 +01:00
Daniel Marjamäki f10d170ad3 misra addon: handle [[fallthrough]] attribute 2018-03-12 13:43:23 +01:00
Jonathan Clohessy 589cc6049d Modified misra.py to fix issue introduced during last change (#1101)
Added additional elif confition to cause error checks to ignore .dump files
Previous change meant that .dump always falls into else statement and script exits
2018-02-26 22:08:22 +01:00
Daniel Marjamäki 21bb973702 Removed code metrics addon 2018-02-18 11:17:54 +01:00
Daniel Marjamäki 0e6e8ecda1 addons/metrics.py: count comments 2018-02-17 17:31:59 +01:00
Daniel Marjamäki 5db9345a08 addons/metrics: Add simple script for generating some metrics 2018-02-17 14:59:40 +01:00
Daniel Marjamäki 7f616a1805 misra.py: Add error handling when there are missing files, wrong arguments, etc 2018-02-17 07:39:37 +01:00
Daniel Marjamäki 6e8184f7cc cert.py: Added test for EXP46 2018-01-23 22:43:29 +01:00
Daniel Marjamäki 8eae9cdd60 cert.py: Added testcases for EXP42 and fixed the code a little 2018-01-23 17:18:47 +01:00
amai2012 fcbe88ad2f Move test files to subfolder 2018-01-23 11:33:13 +01:00
Daniel Marjamäki 55b3004000 misra.py: minor tweaks 2018-01-21 10:39:18 +01:00
Daniel Marjamäki 6f2d4361df Misra: Integration of MISRA in the GUI. The misra addon can now extract the rule texts from the PDF. 2018-01-20 14:13:09 +01:00
orbitcowboy 5a333dfa17 addons:y2038:README: fixed typos. 2017-11-07 11:14:09 +01:00
KMilhan 76c3cef4d6 MISRA 15.7 only checks if...else if constructs (#983) 2017-10-26 08:47:53 +02:00
Daniel Marjamäki 438b1ccb91 cert.py: update cert-INT31-C checker 2017-10-16 13:35:07 +02:00
Daniel Marjamäki 8a8339274b cert.py: add testfile 2017-10-15 16:18:29 +02:00
Daniel Marjamäki 56ceb5a58c cert.py: Added INT-31-C check, ensure that integer conversions do not result in lost or misinterpreted data 2017-10-14 22:24:24 +02:00
Daniel Marjamäki 243960eb8a Revert "Remove MISRA addon before the release of 1.81"
This reverts commit 9baefd8687.
2017-10-09 15:25:55 +02:00
Daniel Marjamäki 773cc07d44 cppcheckdata.py: parsing of NULL pointers from VS 32-bit and 64-bit 2017-10-07 22:44:35 +02:00
Daniel Marjamäki 9baefd8687 Remove MISRA addon before the release of 1.81 2017-10-07 13:38:21 +02:00
KMilhan 8b509a158f Make MISRA C 2012 12.2 work on C++ (#946) 2017-08-31 16:06:46 +02:00
Daniel Marjamäki b7af13ce63 cert.py: reformat output again 2017-08-15 21:44:43 +02:00
Daniel Marjamäki 2ca46ceae9 threadsafety.py: reformat output 2017-08-15 21:44:21 +02:00
Daniel Marjamäki 256adfbcb5 cert.py: Reformatting output 2017-08-15 20:34:54 +02:00
Daniel Marjamäki 051fb55e2c misra.py: Reformatting output 2017-08-15 20:34:44 +02:00
Daniel Marjamäki bb5b18cf7e Revert "Remove MISRA addon before the release of 1.80"
This reverts commit 2ecf47c328.
2017-07-29 16:28:57 +02:00
Daniel Marjamäki 2ecf47c328 Remove MISRA addon before the release of 1.80 2017-07-29 10:04:54 +02:00
Ayaz Salikhov 2e6a22e882 Improve Python code 2017-07-22 11:05:50 +02:00
Ayaz Salikhov 3dc4188292 Improve Python code 2017-06-05 13:23:00 +02:00
Ayaz Salikhov 2dd6168258 Improve Python code 2017-06-04 22:51:48 +02:00
Daniel Marjamäki 39d55a6f6e Revert "Temporarily remove MISRA addon"
This reverts commit b85150d45a.
2017-05-13 15:03:29 +02:00
Daniel Marjamäki b85150d45a Temporarily remove MISRA addon 2017-05-13 10:55:10 +02:00
Daniel Marjamäki 2b80f17714 y2038: fix problems 2017-04-19 06:46:53 +02:00
Daniel Marjamäki 82a68858ef Misra: Add rule 3.1 2017-04-18 20:47:11 +02:00
Daniel Marjamäki ea67086da4 Misra: Fix crash in rule 10.6 for bad AST 2017-04-18 19:57:49 +02:00
Daniel Marjamäki f707eceb20 Misra: Fix endless loop in rule 5.3 2017-04-18 19:54:43 +02:00
Daniel Marjamäki ce9f121ce6 Misra: Fix rule 5.3 2017-04-17 13:32:48 +02:00
Daniel Marjamäki 9305394abd Misra: Add rule 5.3 2017-04-17 13:17:37 +02:00
Daniel Marjamäki dd2eb9ad1a Misra: tweak rule 5.4 2017-04-17 12:57:21 +02:00
Daniel Marjamäki 11621b2b36 Misra: Add rule 5.4 2017-04-17 12:55:19 +02:00
Daniel Marjamäki c56926f4bd Misra: Add rule 5.5 2017-04-17 12:48:28 +02:00
Daniel Marjamäki 892f11b7f1 Misra: Fix FP, rule 15.6 2017-04-17 10:39:05 +02:00
Daniel Marjamäki a47a5e55e4 Misra: Fix FP, rule 15.6 2017-04-17 09:38:46 +02:00
Daniel Marjamäki 0adc4f0789 Misra: Fix FP, rule 16.6 2017-04-17 09:07:45 +02:00
Daniel Marjamäki 196b530ede Misra: Fix FP, rule 10.8 2017-04-17 08:44:30 +02:00
Daniel Marjamäki d6570b01e1 misra.py: Fix loading of rule texts 2017-04-17 08:35:17 +02:00
Daniel Marjamäki 4f64e67298 Misra: Add rule 8.11 2017-04-17 07:45:27 +02:00
Daniel Marjamäki 6c8712c57b Misra: Added --rule-texts=<file> flag 2017-04-16 21:38:26 +02:00
Daniel Marjamäki ad8fef8a2f Misra: Add rule 8.12 2017-04-16 19:01:33 +02:00
Daniel Marjamäki b2a846dff0 Misra: Add rule 9.5 2017-04-16 17:19:30 +02:00
Daniel Marjamäki b5bd9468de Misra: Add rule 8.14 2017-04-16 17:04:40 +02:00
Daniel Marjamäki efcbbd56ed Misra: Add rule 10.4 2017-04-16 13:39:49 +02:00
Daniel Marjamäki 73dd71991c Misra: Add rule 10.6 2017-04-16 13:28:08 +02:00
Daniel Marjamäki 7926cff8cc Misra: Add rule 10.8 2017-04-16 13:09:37 +02:00
Daniel Marjamäki 52985da13b Misra: Exception for rule 11.3 2017-04-16 12:17:42 +02:00
Daniel Marjamäki 85a6e9ce59 Misra: Add rule 11.3 2017-04-16 12:13:30 +02:00
Daniel Marjamäki a92ce98cab Misra: Add rule 11.4 2017-04-16 12:00:03 +02:00
Daniel Marjamäki 240b57bc9e Misra: Add rule 11.5 2017-04-16 11:47:44 +02:00
Daniel Marjamäki 657c9db478 Misra: Add rule 11.6 2017-04-16 11:41:00 +02:00
Daniel Marjamäki 6c0f4f46ce Misra: Harden rule 11.7 2017-04-16 11:01:49 +02:00
Daniel Marjamäki 1045ece946 dump: refactor valueType dump 2017-04-16 09:11:20 +02:00
Daniel Marjamäki ccf078747a Misra: Add rule 11.7 2017-04-15 22:06:18 +02:00
Daniel Marjamäki b59d46091e Misra: Add rule 11.8 2017-04-15 21:55:07 +02:00
Daniel Marjamäki dd8b96f4c8 dump: Read platform info from dump file 2017-04-15 19:15:48 +02:00
Daniel Marjamäki ef416d318e Misra: Add rule 11.9 2017-04-15 19:00:34 +02:00
Daniel Marjamäki d44cc16b1c Misra: Harden isFunctionCall() 2017-04-15 15:21:55 +02:00
Daniel Marjamäki 485f8c0820 Misra: Refactoring with isFunctionCall 2017-04-15 15:20:28 +02:00
Daniel Marjamäki 20aa099d05 Misra: Refactoring (use directives instead of rawTokens) 2017-04-15 15:13:18 +02:00
Daniel Marjamäki 2236034243 Misra: Refactoring 2017-04-15 14:29:29 +02:00
Daniel Marjamäki 6d0f75fbae Revert "Misra: Add rule 4.3"
This reverts commit eb11667c22.
2017-04-15 14:11:34 +02:00
Daniel Marjamäki eb11667c22 Misra: Add rule 4.3 2017-04-15 14:10:00 +02:00
Daniel Marjamäki 934183baef Misra: Add rule 21.11 2017-04-15 12:40:23 +02:00
Daniel Marjamäki 1b1099201c Misra: Add rule 21.9 2017-04-15 08:30:09 +02:00
Daniel Marjamäki a3cd587af3 Misra: Add rule 21.8 2017-04-15 08:24:24 +02:00
Daniel Marjamäki a5b3fe3998 Misra: Add rule 21.7 2017-04-15 08:08:17 +02:00
Daniel Marjamäki 95048527d0 Misra: Add rule 21.4 and 21.5 2017-04-14 22:58:42 +02:00
Daniel Marjamäki 06ef496dc7 Misra: Add rule 21.3 2017-04-14 22:53:45 +02:00
Daniel Marjamäki 8a614ed188 Misra: Add rule 20.5 2017-04-14 22:37:17 +02:00
Daniel Marjamäki bcf815ab10 Misra: Add rule 20.4 2017-04-14 22:33:59 +02:00
Daniel Marjamäki c8d3cccc21 Misra: Add rule 20.3 2017-04-14 22:25:35 +02:00
Daniel Marjamäki 79ef26d7a2 Misra: Add rule 20.2 2017-04-14 22:22:22 +02:00
Daniel Marjamäki 3c11aa781b Misra: Add rule 20.1 2017-04-14 21:49:52 +02:00
Daniel Marjamäki 87d0fdd709 Misra: Add rule 19.2 2017-04-14 21:14:26 +02:00
Daniel Marjamäki e3872f9718 Misra: Add rule 18.8 2017-04-14 21:09:25 +02:00
Daniel Marjamäki 8c42e052ac Misra: Added rule 18.5 2017-04-14 20:51:09 +02:00
Daniel Marjamäki e8af55e890 Misra: Added rule 17.8 2017-04-14 20:38:35 +02:00
Daniel Marjamäki f45a5ed29e Misra: Add rule 17.6 2017-04-14 18:51:12 +02:00
Daniel Marjamäki 41e07c0614 Misra: Added rule 17.1 2017-04-14 14:13:37 +02:00
Daniel Marjamäki e5286c61d5 Misra: Added rule 16.7 2017-04-14 13:23:53 +02:00
Daniel Marjamäki 47126e93a4 Misra: Added rule 16.6 2017-04-14 13:18:20 +02:00
Daniel Marjamäki 1cd8454239 Misra: Added rule 16.5 2017-04-14 13:07:48 +02:00
Daniel Marjamäki 33df403727 Misra: Refactoring with simpleMatch 2017-04-14 13:01:02 +02:00
Daniel Marjamäki e840d67f03 Misra: Added rule 16.4 2017-04-14 12:57:07 +02:00
Daniel Marjamäki 9c8fc6253a Misra: Added verification code in the script to simplify testing 2017-04-14 11:20:20 +02:00
Daniel Marjamäki 174bcc8d34 Misra: Add rule 16.3 2017-04-14 10:46:35 +02:00
Daniel Marjamäki aa2d1fd683 Misra: Add rule 16.2 2017-04-14 08:17:32 +02:00
Daniel Marjamäki 0052ef7437 Misra: Add rule 15.7 2017-04-14 08:05:14 +02:00
Daniel Marjamäki 471a9af348 Misra: Added rule 15.6 2017-04-13 23:24:35 +02:00
Daniel Marjamäki ec72330e7a Misra: Add rule 15.5 2017-04-13 23:07:41 +02:00
Daniel Marjamäki 4ebe520858 Misra: Added rule 15.3 2017-04-13 23:02:06 +02:00
Daniel Marjamäki 14a27f292e Misra: Added rule 15.2 2017-04-13 22:44:43 +02:00
Daniel Marjamäki b620853b25 Misra: Added rule 14.2 2017-04-13 22:26:12 +02:00
Daniel Marjamäki 466bbdcf6f Misra: Add Rule 14.1 2017-04-13 22:05:27 +02:00