Update tools/get_checkers.py and lib/checkers.cpp (#5749)

This commit is contained in:
Daniel Marjamäki 2023-12-11 15:18:19 +01:00 committed by GitHub
parent 243fa66bd3
commit d695c6c766
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 489 additions and 861 deletions

View File

@ -16,6 +16,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// This file is auto-generated by tools/get_checkers.py:
// python3 tools/get_checkers.py > lib/checkers.cpp
#include "checkers.h"
namespace checkers {
@ -201,6 +204,7 @@ namespace checkers {
const std::map<std::string, std::string> premiumCheckers{
{"Autosar: A0-1-3","style"},
{"Autosar: A0-1-6","style"},
{"Autosar: A0-4-2","style"},
{"Autosar: A0-4-4","style"},
{"Autosar: A10-1-1","style"},
@ -226,6 +230,20 @@ namespace checkers {
{"Autosar: A2-13-5","style"},
{"Autosar: A2-13-6","style"},
{"Autosar: A2-5-2","style"},
{"Autosar: A20-8-2","warning"},
{"Autosar: A20-8-3","warning"},
{"Autosar: A20-8-4","style"},
{"Autosar: A20-8-5","style"},
{"Autosar: A20-8-6","style"},
{"Autosar: A21-8-1","warning"},
{"Autosar: A23-0-1","style"},
{"Autosar: A25-1-1","warning"},
{"Autosar: A25-4-1","warning"},
{"Autosar: A26-5-1","style"},
{"Autosar: A26-5-2","style"},
{"Autosar: A27-0-1","warning"},
{"Autosar: A27-0-2","style"},
{"Autosar: A27-0-4","style"},
{"Autosar: A3-1-3","style"},
{"Autosar: A3-1-4","style"},
{"Autosar: A3-3-1","style"},
@ -237,9 +255,9 @@ namespace checkers {
{"Autosar: A5-1-1","style"},
{"Autosar: A5-1-2","style"},
{"Autosar: A5-1-3","style"},
{"Autosar: A5-16-1","style"},
{"Autosar: A5-1-6","style"},
{"Autosar: A5-1-7","style"},
{"Autosar: A5-16-1","style"},
{"Autosar: A5-2-1","style"},
{"Autosar: A5-2-4","style"},
{"Autosar: A6-5-3","style"},
@ -249,6 +267,63 @@ namespace checkers {
{"Autosar: A8-4-1","style"},
{"Autosar: A8-5-3","style"},
{"Autosar: A9-3-1","style"},
{"Cert C++: CON51-CPP",""},
{"Cert C++: CON52-CPP","style"},
{"Cert C++: CON53-CPP","style"},
{"Cert C++: CON54-CPP","style"},
{"Cert C++: CON55-CPP","style"},
{"Cert C++: CON56-CPP",""},
{"Cert C++: CTR50-CPP",""},
{"Cert C++: CTR52-CPP",""},
{"Cert C++: CTR53-CPP",""},
{"Cert C++: CTR56-CPP","style"},
{"Cert C++: CTR57-CPP","warning"},
{"Cert C++: CTR58-CPP","warning"},
{"Cert C++: DCL50-CPP","style"},
{"Cert C++: DCL51-CPP","style"},
{"Cert C++: DCL52-CPP","style"},
{"Cert C++: DCL53-CPP","style"},
{"Cert C++: DCL54-CPP",""},
{"Cert C++: DCL56-CPP",""},
{"Cert C++: DCL58-CPP","style"},
{"Cert C++: DCL59-CPP","style"},
{"Cert C++: ERR50-CPP",""},
{"Cert C++: ERR51-CPP","style"},
{"Cert C++: ERR52-CPP","style"},
{"Cert C++: ERR53-CPP",""},
{"Cert C++: ERR54-CPP",""},
{"Cert C++: ERR55-CPP",""},
{"Cert C++: ERR56-CPP",""},
{"Cert C++: ERR58-CPP",""},
{"Cert C++: ERR59-CPP","warning"},
{"Cert C++: ERR60-CPP","warning"},
{"Cert C++: ERR61-CPP","style"},
{"Cert C++: ERR62-CPP","style"},
{"Cert C++: EXP50-CPP",""},
{"Cert C++: EXP51-CPP",""},
{"Cert C++: EXP55-CPP",""},
{"Cert C++: EXP56-CPP",""},
{"Cert C++: EXP57-CPP","style"},
{"Cert C++: EXP58-CPP","style"},
{"Cert C++: EXP59-CPP",""},
{"Cert C++: FIO51-CPP","style"},
{"Cert C++: INT50-CPP","style"},
{"Cert C++: MEM52-CPP",""},
{"Cert C++: MEM53-CPP",""},
{"Cert C++: MEM54-CPP",""},
{"Cert C++: MEM55-CPP",""},
{"Cert C++: MEM57-CPP","style"},
{"Cert C++: MSC50-CPP","style"},
{"Cert C++: MSC51-CPP","style"},
{"Cert C++: MSC53-CPP",""},
{"Cert C++: MSC54-CPP","style"},
{"Cert C++: OOP51-CPP",""},
{"Cert C++: OOP55-CPP",""},
{"Cert C++: OOP56-CPP",""},
{"Cert C++: OOP57-CPP",""},
{"Cert C++: OOP58-CPP","style"},
{"Cert C++: STR50-CPP",""},
{"Cert C++: STR53-CPP",""},
{"Cert C: ARR30-C","warning"},
{"Cert C: ARR32-C","warning"},
{"Cert C: ARR37-C","warning"},
@ -266,18 +341,6 @@ namespace checkers {
{"Cert C: CON39-C","warning"},
{"Cert C: CON40-C","warning"},
{"Cert C: CON41-C","style"},
{"Cert C++: CON51-CPP",""},
{"Cert C++: CON52-CPP","style"},
{"Cert C++: CON53-CPP","style"},
{"Cert C++: CON54-CPP","style"},
{"Cert C++: CON55-CPP","style"},
{"Cert C++: CON56-CPP",""},
{"Cert C++: CTR50-CPP",""},
{"Cert C++: CTR52-CPP",""},
{"Cert C++: CTR53-CPP",""},
{"Cert C++: CTR56-CPP","style"},
{"Cert C++: CTR57-CPP",""},
{"Cert C++: CTR58-CPP",""},
{"Cert C: DCL31-C","style"},
{"Cert C: DCL36-C","style"},
{"Cert C: DCL37-C","style"},
@ -285,14 +348,6 @@ namespace checkers {
{"Cert C: DCL39-C","style"},
{"Cert C: DCL40-C","style"},
{"Cert C: DCL41-C","style"},
{"Cert C++: DCL50-CPP","style"},
{"Cert C++: DCL51-CPP","style"},
{"Cert C++: DCL52-CPP","style"},
{"Cert C++: DCL53-CPP","style"},
{"Cert C++: DCL54-CPP",""},
{"Cert C++: DCL56-CPP",""},
{"Cert C++: DCL58-CPP","style"},
{"Cert C++: DCL59-CPP","style"},
{"Cert C: ENV30-C","style"},
{"Cert C: ENV31-C","style"},
{"Cert C: ENV32-C","style"},
@ -301,18 +356,6 @@ namespace checkers {
{"Cert C: ERR30-C","warning"},
{"Cert C: ERR32-C","warning"},
{"Cert C: ERR33-C","warning"},
{"Cert C++: ERR50-CPP",""},
{"Cert C++: ERR51-CPP","style"},
{"Cert C++: ERR52-CPP","style"},
{"Cert C++: ERR53-CPP",""},
{"Cert C++: ERR54-CPP",""},
{"Cert C++: ERR55-CPP",""},
{"Cert C++: ERR56-CPP",""},
{"Cert C++: ERR58-CPP",""},
{"Cert C++: ERR59-CPP","warning"},
{"Cert C++: ERR60-CPP","warning"},
{"Cert C++: ERR61-CPP","style"},
{"Cert C++: ERR62-CPP","style"},
{"Cert C: EXP32-C","warning"},
{"Cert C: EXP35-C",""},
{"Cert C: EXP36-C","style"},
@ -322,13 +365,6 @@ namespace checkers {
{"Cert C: EXP42-C","style"},
{"Cert C: EXP43-C","style"},
{"Cert C: EXP45-C","warning"},
{"Cert C++: EXP50-CPP",""},
{"Cert C++: EXP51-CPP",""},
{"Cert C++: EXP55-CPP",""},
{"Cert C++: EXP56-CPP",""},
{"Cert C++: EXP57-CPP","style"},
{"Cert C++: EXP58-CPP","style"},
{"Cert C++: EXP59-CPP",""},
{"Cert C: FIO30-C","warning"},
{"Cert C: FIO32-C","style"},
{"Cert C: FIO34-C","style"},
@ -338,7 +374,6 @@ namespace checkers {
{"Cert C: FIO41-C","style"},
{"Cert C: FIO44-C","warning"},
{"Cert C: FIO45-C","warning"},
{"Cert C++: FIO51-CPP","style"},
{"Cert C: FLP30-C","warning"},
{"Cert C: FLP36-C","portability"},
{"Cert C: FLP37-C","style"},
@ -349,30 +384,15 @@ namespace checkers {
{"Cert C: INT34-C","warning"},
{"Cert C: INT35-C","warning"},
{"Cert C: INT36-C","warning"},
{"Cert C++: INT50-CPP","style"},
{"Cert C: MEM33-C","style"},
{"Cert C: MEM35-C","warning"},
{"Cert C: MEM36-C","warning"},
{"Cert C++: MEM52-CPP",""},
{"Cert C++: MEM53-CPP",""},
{"Cert C++: MEM54-CPP",""},
{"Cert C++: MEM55-CPP",""},
{"Cert C++: MEM57-CPP","style"},
{"Cert C: MSC30-C","style"},
{"Cert C: MSC32-C","style"},
{"Cert C: MSC33-C","style"},
{"Cert C: MSC38-C","warning"},
{"Cert C: MSC39-C","warning"},
{"Cert C: MSC40-C","warning"},
{"Cert C++: MSC50-CPP","style"},
{"Cert C++: MSC51-CPP","style"},
{"Cert C++: MSC53-CPP",""},
{"Cert C++: MSC54-CPP","style"},
{"Cert C++: OOP51-CPP",""},
{"Cert C++: OOP55-CPP",""},
{"Cert C++: OOP56-CPP",""},
{"Cert C++: OOP57-CPP",""},
{"Cert C++: OOP58-CPP","style"},
{"Cert C: PRE31-C","style"},
{"Cert C: SIG30-C","style"},
{"Cert C: SIG31-C","warning"},
@ -382,8 +402,158 @@ namespace checkers {
{"Cert C: STR32-C","warning"},
{"Cert C: STR34-C","warning"},
{"Cert C: STR38-C","style"},
{"Cert C++: STR50-CPP",""},
{"Cert C++: STR53-CPP",""},
{"Misra C++: M0-1-11","style"},
{"Misra C++: M0-1-12","style"},
{"Misra C++: M0-1-4","style"},
{"Misra C++: M0-1-5","style"},
{"Misra C++: M0-1-7","style"},
{"Misra C++: M0-1-8","style"},
{"Misra C++: M10-1-1","style"},
{"Misra C++: M10-1-2","style"},
{"Misra C++: M10-1-3","style"},
{"Misra C++: M10-2-1","style"},
{"Misra C++: M10-3-1","style"},
{"Misra C++: M10-3-3","style"},
{"Misra C++: M11-0-1","style"},
{"Misra C++: M12-1-2","style"},
{"Misra C++: M12-8-1","style"},
{"Misra C++: M12-8-2","style"},
{"Misra C++: M14-5-1","warning"},
{"Misra C++: M14-5-2","warning"},
{"Misra C++: M14-5-3","warning"},
{"Misra C++: M14-6-1","warning"},
{"Misra C++: M14-6-2","warning"},
{"Misra C++: M14-7-1","style"},
{"Misra C++: M14-7-2","style"},
{"Misra C++: M14-7-3","style"},
{"Misra C++: M14-8-1","style"},
{"Misra C++: M14-8-2","style"},
{"Misra C++: M15-0-3",""},
{"Misra C++: M15-1-1",""},
{"Misra C++: M15-1-2","style"},
{"Misra C++: M15-1-3","style"},
{"Misra C++: M15-3-2","warning"},
{"Misra C++: M15-3-3",""},
{"Misra C++: M15-3-4",""},
{"Misra C++: M15-4-1","style"},
{"Misra C++: M15-5-2",""},
{"Misra C++: M16-0-1","style"},
{"Misra C++: M16-0-2","style"},
{"Misra C++: M16-0-3","style"},
{"Misra C++: M16-0-4","style"},
{"Misra C++: M16-1-1","style"},
{"Misra C++: M16-2-1","style"},
{"Misra C++: M16-2-2","style"},
{"Misra C++: M16-2-3","style"},
{"Misra C++: M16-2-4","style"},
{"Misra C++: M16-2-5","style"},
{"Misra C++: M16-2-6","style"},
{"Misra C++: M16-3-1","style"},
{"Misra C++: M16-3-2","style"},
{"Misra C++: M17-0-1","style"},
{"Misra C++: M17-0-2","style"},
{"Misra C++: M17-0-3","style"},
{"Misra C++: M17-0-5","style"},
{"Misra C++: M18-0-1","style"},
{"Misra C++: M18-0-2","style"},
{"Misra C++: M18-0-3","style"},
{"Misra C++: M18-0-4","style"},
{"Misra C++: M18-0-5","style"},
{"Misra C++: M18-2-1","style"},
{"Misra C++: M18-4-1","style"},
{"Misra C++: M18-7-1","style"},
{"Misra C++: M19-3-1","style"},
{"Misra C++: M2-10-1","style"},
{"Misra C++: M2-10-3","style"},
{"Misra C++: M2-10-4","style"},
{"Misra C++: M2-10-5","style"},
{"Misra C++: M2-10-6","style"},
{"Misra C++: M2-13-4","style"},
{"Misra C++: M2-13-5","style"},
{"Misra C++: M2-7-1","style"},
{"Misra C++: M2-7-2","style"},
{"Misra C++: M2-7-3","style"},
{"Misra C++: M27-0-1","style"},
{"Misra C++: M3-1-1","style"},
{"Misra C++: M3-1-2","style"},
{"Misra C++: M3-1-3","style"},
{"Misra C++: M3-2-1",""},
{"Misra C++: M3-3-1","style"},
{"Misra C++: M3-3-2","style"},
{"Misra C++: M3-9-1","style"},
{"Misra C++: M3-9-2","style"},
{"Misra C++: M3-9-3","style"},
{"Misra C++: M4-10-1","style"},
{"Misra C++: M4-10-2","style"},
{"Misra C++: M4-5-1","style"},
{"Misra C++: M4-5-2","style"},
{"Misra C++: M4-5-3","style"},
{"Misra C++: M5-0-10","style"},
{"Misra C++: M5-0-11","style"},
{"Misra C++: M5-0-12","style"},
{"Misra C++: M5-0-14","style"},
{"Misra C++: M5-0-15","style"},
{"Misra C++: M5-0-2","style"},
{"Misra C++: M5-0-20","style"},
{"Misra C++: M5-0-21","style"},
{"Misra C++: M5-0-3","style"},
{"Misra C++: M5-0-4","style"},
{"Misra C++: M5-0-5","style"},
{"Misra C++: M5-0-6","style"},
{"Misra C++: M5-0-7","style"},
{"Misra C++: M5-0-8","style"},
{"Misra C++: M5-0-9","style"},
{"Misra C++: M5-17-1","style"},
{"Misra C++: M5-2-1","style"},
{"Misra C++: M5-2-10","style"},
{"Misra C++: M5-2-11","style"},
{"Misra C++: M5-2-12","style"},
{"Misra C++: M5-2-2","style"},
{"Misra C++: M5-2-3","style"},
{"Misra C++: M5-2-5","style"},
{"Misra C++: M5-2-6","style"},
{"Misra C++: M5-2-7","style"},
{"Misra C++: M5-2-8","style"},
{"Misra C++: M5-2-9","style"},
{"Misra C++: M5-3-1","style"},
{"Misra C++: M5-3-2","style"},
{"Misra C++: M5-3-3","style"},
{"Misra C++: M6-2-3","style"},
{"Misra C++: M6-4-4","style"},
{"Misra C++: M6-4-6","style"},
{"Misra C++: M6-4-7","style"},
{"Misra C++: M6-4-8","style"},
{"Misra C++: M6-5-1","style"},
{"Misra C++: M6-5-2","style"},
{"Misra C++: M6-5-3","style"},
{"Misra C++: M6-5-4","style"},
{"Misra C++: M6-5-5","style"},
{"Misra C++: M6-5-6","style"},
{"Misra C++: M6-6-1","style"},
{"Misra C++: M6-6-3","style"},
{"Misra C++: M6-6-4","style"},
{"Misra C++: M6-6-5","style"},
{"Misra C++: M7-2-1","style"},
{"Misra C++: M7-3-1","style"},
{"Misra C++: M7-3-2","style"},
{"Misra C++: M7-3-3","style"},
{"Misra C++: M7-3-4","style"},
{"Misra C++: M7-3-5","style"},
{"Misra C++: M7-3-6","style"},
{"Misra C++: M7-4-2","style"},
{"Misra C++: M7-4-3","style"},
{"Misra C++: M7-5-3","style"},
{"Misra C++: M8-0-1","style"},
{"Misra C++: M8-3-1","style"},
{"Misra C++: M8-4-4","style"},
{"Misra C++: M8-5-2","style"},
{"Misra C++: M8-5-3","style"},
{"Misra C++: M9-3-1","style"},
{"Misra C++: M9-5-1","style"},
{"Misra C++: M9-6-2","style"},
{"Misra C++: M9-6-3","style"},
{"Misra C++: M9-6-4","style"},
{"Misra C: 1.5","style"},
{"Misra C: 10.1","style"},
{"Misra C: 10.2","style"},
{"Misra C: 10.3","style"},
@ -394,7 +564,6 @@ namespace checkers {
{"Misra C: 10.8","style"},
{"Misra C: 11.10","style"},
{"Misra C: 12.6",""},
{"Misra C: 1.5","style"},
{"Misra C: 17.10","style"},
{"Misra C: 17.11","style"},
{"Misra C: 17.12","style"},
@ -434,145 +603,6 @@ namespace checkers {
{"Misra C: 8.17","style"},
{"Misra C: 9.6","style"},
{"Misra C: 9.7",""},
{"Misra C++: M0-1-11","style"},
{"Misra C++: M0-1-12","style"},
{"Misra C++: M0-1-4","style"},
{"Misra C++: M0-1-5","style"},
{"Misra C++: M0-1-7","style"},
{"Misra C++: M0-1-8","style"},
{"Misra C++: M10-1-1","style"},
{"Misra C++: M10-1-2","style"},
{"Misra C++: M10-1-3","style"},
{"Misra C++: M10-2-1","style"},
{"Misra C++: M10-3-3","style"},
{"Misra C++: M11-0-1","style"},
{"Misra C++: M12-8-2","style"},
{"Misra C++: M14-5-1","warning"},
{"Misra C++: M14-5-2","warning"},
{"Misra C++: M14-5-3","warning"},
{"Misra C++: M14-6-1","warning"},
{"Misra C++: M14-7-1","style"},
{"Misra C++: M14-7-2","style"},
{"Misra C++: M15-0-3",""},
{"Misra C++: M15-1-1",""},
{"Misra C++: M15-1-2","style"},
{"Misra C++: M15-1-3","style"},
{"Misra C++: M15-3-2","warning"},
{"Misra C++: M15-3-3",""},
{"Misra C++: M15-4-1","style"},
{"Misra C++: M16-0-1","style"},
{"Misra C++: M16-0-2","style"},
{"Misra C++: M16-0-3","style"},
{"Misra C++: M16-0-4","style"},
{"Misra C++: M16-1-1","style"},
{"Misra C++: M16-2-1","style"},
{"Misra C++: M16-2-2","style"},
{"Misra C++: M16-2-3","style"},
{"Misra C++: M16-2-4","style"},
{"Misra C++: M16-2-5","style"},
{"Misra C++: M16-2-6","style"},
{"Misra C++: M16-3-1","style"},
{"Misra C++: M16-3-2","style"},
{"Misra C++: M17-0-1","style"},
{"Misra C++: M17-0-2","style"},
{"Misra C++: M17-0-3","style"},
{"Misra C++: M17-0-5","style"},
{"Misra C++: M18-0-1","style"},
{"Misra C++: M18-0-2","style"},
{"Misra C++: M18-0-3","style"},
{"Misra C++: M18-0-4","style"},
{"Misra C++: M18-0-5","style"},
{"Misra C++: M18-2-1","style"},
{"Misra C++: M18-4-1","style"},
{"Misra C++: M18-7-1","style"},
{"Misra C++: M19-3-1","style"},
{"Misra C++: M2-10-1","style"},
{"Misra C++: M2-10-3","style"},
{"Misra C++: M2-10-4","style"},
{"Misra C++: M2-10-5","style"},
{"Misra C++: M2-10-6","style"},
{"Misra C++: M2-13-4","style"},
{"Misra C++: M2-13-5","style"},
{"Misra C++: M27-0-1","style"},
{"Misra C++: M2-7-1","style"},
{"Misra C++: M2-7-2","style"},
{"Misra C++: M2-7-3","style"},
{"Misra C++: M3-1-1","style"},
{"Misra C++: M3-1-2","style"},
{"Misra C++: M3-1-3","style"},
{"Misra C++: M3-2-1",""},
{"Misra C++: M3-3-1","style"},
{"Misra C++: M3-3-2","style"},
{"Misra C++: M3-9-1","style"},
{"Misra C++: M3-9-2","style"},
{"Misra C++: M3-9-3","style"},
{"Misra C++: M4-10-1","style"},
{"Misra C++: M4-10-2","style"},
{"Misra C++: M4-5-1","style"},
{"Misra C++: M4-5-2","style"},
{"Misra C++: M4-5-3","style"},
{"Misra C++: M5-0-10","style"},
{"Misra C++: M5-0-11","style"},
{"Misra C++: M5-0-12","style"},
{"Misra C++: M5-0-14","style"},
{"Misra C++: M5-0-15","style"},
{"Misra C++: M5-0-20","style"},
{"Misra C++: M5-0-21","style"},
{"Misra C++: M5-0-2","style"},
{"Misra C++: M5-0-3","style"},
{"Misra C++: M5-0-4","style"},
{"Misra C++: M5-0-5","style"},
{"Misra C++: M5-0-6","style"},
{"Misra C++: M5-0-7","style"},
{"Misra C++: M5-0-8","style"},
{"Misra C++: M5-0-9","style"},
{"Misra C++: M5-2-10","style"},
{"Misra C++: M5-2-11","style"},
{"Misra C++: M5-2-12","style"},
{"Misra C++: M5-2-1","style"},
{"Misra C++: M5-2-2","style"},
{"Misra C++: M5-2-3","style"},
{"Misra C++: M5-2-5","style"},
{"Misra C++: M5-2-6","style"},
{"Misra C++: M5-2-7","style"},
{"Misra C++: M5-2-8","style"},
{"Misra C++: M5-2-9","style"},
{"Misra C++: M5-3-1","style"},
{"Misra C++: M5-3-2","style"},
{"Misra C++: M5-3-3","style"},
{"Misra C++: M6-2-3","style"},
{"Misra C++: M6-4-4","style"},
{"Misra C++: M6-4-6","style"},
{"Misra C++: M6-4-7","style"},
{"Misra C++: M6-4-8","style"},
{"Misra C++: M6-5-1","style"},
{"Misra C++: M6-5-2","style"},
{"Misra C++: M6-5-3","style"},
{"Misra C++: M6-5-4","style"},
{"Misra C++: M6-5-5","style"},
{"Misra C++: M6-5-6","style"},
{"Misra C++: M6-6-1","style"},
{"Misra C++: M6-6-3","style"},
{"Misra C++: M6-6-4","style"},
{"Misra C++: M6-6-5","style"},
{"Misra C++: M7-2-1","style"},
{"Misra C++: M7-3-1","style"},
{"Misra C++: M7-3-2","style"},
{"Misra C++: M7-3-3","style"},
{"Misra C++: M7-3-4","style"},
{"Misra C++: M7-3-5","style"},
{"Misra C++: M7-3-6","style"},
{"Misra C++: M7-4-2","style"},
{"Misra C++: M7-4-3","style"},
{"Misra C++: M7-5-3","style"},
{"Misra C++: M8-0-1","style"},
{"Misra C++: M8-3-1","style"},
{"Misra C++: M8-4-4","style"},
{"Misra C++: M9-3-1","style"},
{"Misra C++: M9-5-1","style"},
{"Misra C++: M9-6-2","style"},
{"Misra C++: M9-6-3","style"},
{"Misra C++: M9-6-4","style"},
{"PremiumCheckBufferOverrun::addressOfPointerArithmetic","warning"},
{"PremiumCheckBufferOverrun::negativeBufferSizeCheckedNonZero","warning"},
{"PremiumCheckBufferOverrun::negativeBufferSizeCheckedNonZero","warning"},
@ -588,7 +618,7 @@ namespace checkers {
{"PremiumCheckUninitVar::uninitmember",""},
{"PremiumCheckUninitVar::uninitvar",""},
{"PremiumCheckUnusedVar::unreadVariable","style"},
{"PremiumCheckUnusedVar::unusedPrivateMember","style"},
{"PremiumCheckUnusedVar::unusedPrivateMember","style"}
};
const char Req[] = "Required";

View File

@ -1,4 +1,5 @@
import glob
import os
import re
print("""/*
@ -19,17 +20,15 @@ print("""/*
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
// This file is auto-generated by tools/get_checkers.py:
// python3 tools/get_checkers.py > lib/checkers.cpp
#include <map>
#include <string>
#include <vector>
#include "checkers.h"
namespace checkers {
const std::map<std::string, std::string> allCheckers{""")
static std::map<std::string, std::string> allCheckers{""")
for filename in glob.glob('../lib/*.cpp'):
for filename in glob.glob(os.path.expanduser('~/cppchecksolutions/cppcheck/lib/*.cpp')):
for line in open(filename,'rt'):
res = re.match(r'[ \t]*logChecker\(\s*"([:_a-zA-Z0-9]+)"\s*\);.*', line)
if res is None:
@ -38,428 +37,30 @@ for filename in glob.glob('../lib/*.cpp'):
if line.find('//')>0:
req = line[line.find('//')+2:].strip()
print(' {"%s","%s"},' % (res.group(1), req))
print("};\n\n")
print(" };\n")
print('static std::map<std::string, std::string> premiumCheckers{')
premium_checkers = """
$ grep logChecker src/*.cpp | sed 's/.*logChecker/logChecker/' | sort > 1.txt
logChecker("Autosar: A0-1-3"); // style
logChecker("Autosar: A0-4-2"); // style
logChecker("Autosar: A0-4-4"); // style
logChecker("Autosar: A10-1-1"); // style
logChecker("Autosar: A11-0-2"); // style
logChecker("Autosar: A11-3-1"); // style
logChecker("Autosar: A13-2-1"); // style
logChecker("Autosar: A13-2-3"); // style
logChecker("Autosar: A13-5-2"); // style
logChecker("Autosar: A13-5-5"); // style
logChecker("Autosar: A15-1-2"); // style
logChecker("Autosar: A15-3-5"); // style
logChecker("Autosar: A16-6-1"); // style
logChecker("Autosar: A16-7-1"); // style
logChecker("Autosar: A18-0-3"); // style
logChecker("Autosar: A18-1-1"); // style
logChecker("Autosar: A18-1-2"); // style
logChecker("Autosar: A18-1-3"); // style
logChecker("Autosar: A18-5-1"); // style
logChecker("Autosar: A18-9-1"); // style
logChecker("Autosar: A2-11-1"); // style
logChecker("Autosar: A2-13-1"); // style
logChecker("Autosar: A2-13-3"); // style
logChecker("Autosar: A2-13-5"); // style
logChecker("Autosar: A2-13-6"); // style
logChecker("Autosar: A2-5-2"); // style
logChecker("Autosar: A3-1-3"); // style
logChecker("Autosar: A3-1-4"); // style
logChecker("Autosar: A3-3-1"); // style
logChecker("Autosar: A4-10-1"); // style
logChecker("Autosar: A4-7-1"); // style
logChecker("Autosar: A5-0-2"); // style
logChecker("Autosar: A5-0-3"); // style
logChecker("Autosar: A5-0-4"); // style
logChecker("Autosar: A5-1-1"); // style
logChecker("Autosar: A5-1-2"); // style
logChecker("Autosar: A5-1-3"); // style
logChecker("Autosar: A5-16-1"); // style
logChecker("Autosar: A5-1-6"); // style
logChecker("Autosar: A5-1-7"); // style
logChecker("Autosar: A5-2-1"); // style
logChecker("Autosar: A5-2-4"); // style
logChecker("Autosar: A6-5-3"); // style
logChecker("Autosar: A7-1-4"); // style
logChecker("Autosar: A7-1-6"); // style
logChecker("Autosar: A7-1-7"); // style
logChecker("Autosar: A8-4-1"); // style
logChecker("Autosar: A8-5-3"); // style
logChecker("Autosar: A9-3-1"); // style
logChecker("Cert C: ARR30-C"); // warning
logChecker("Cert C: ARR32-C"); // warning
logChecker("Cert C: ARR37-C"); // warning
logChecker("Cert C: ARR38-C");
logChecker("Cert C: ARR39-C"); // warning
logChecker("Cert C: CON30-C"); // style
logChecker("Cert C: CON31-C"); // style
logChecker("Cert C: CON32-C"); // style
logChecker("Cert C: CON33-C"); // style
logChecker("Cert C: CON34-C"); // warning
logChecker("Cert C: CON35-C"); // warning
logChecker("Cert C: CON36-C"); // style
logChecker("Cert C: CON37-C"); // style
logChecker("Cert C: CON38-C"); // warning
logChecker("Cert C: CON39-C"); // warning
logChecker("Cert C: CON40-C"); // warning
logChecker("Cert C: CON41-C"); // style
logChecker("Cert C++: CON51-CPP");
logChecker("Cert C++: CON52-CPP"); // style
logChecker("Cert C++: CON53-CPP"); // style
logChecker("Cert C++: CON54-CPP"); // style
logChecker("Cert C++: CON55-CPP"); // style
logChecker("Cert C++: CON56-CPP");
logChecker("Cert C++: CTR50-CPP");
logChecker("Cert C++: CTR52-CPP");
logChecker("Cert C++: CTR53-CPP");
logChecker("Cert C++: CTR56-CPP"); // style
logChecker("Cert C++: CTR57-CPP");
logChecker("Cert C++: CTR58-CPP");
logChecker("Cert C: DCL31-C"); // style
logChecker("Cert C: DCL36-C"); // style
logChecker("Cert C: DCL37-C"); // style
logChecker("Cert C: DCL38-C"); // style
logChecker("Cert C: DCL39-C"); // style
logChecker("Cert C: DCL40-C"); // style
logChecker("Cert C: DCL41-C"); // style
logChecker("Cert C++: DCL50-CPP"); // style
logChecker("Cert C++: DCL51-CPP"); // style
logChecker("Cert C++: DCL52-CPP"); // style
logChecker("Cert C++: DCL53-CPP"); // style
logChecker("Cert C++: DCL54-CPP");
logChecker("Cert C++: DCL56-CPP");
logChecker("Cert C++: DCL58-CPP"); // style
logChecker("Cert C++: DCL59-CPP"); // style
logChecker("Cert C: ENV30-C"); // style
logChecker("Cert C: ENV31-C"); // style
logChecker("Cert C: ENV32-C"); // style
logChecker("Cert C: ENV33-C"); // style
logChecker("Cert C: ENV34-C"); // style
logChecker("Cert C: ERR30-C"); // warning
logChecker("Cert C: ERR32-C"); // warning
logChecker("Cert C: ERR33-C"); // warning
logChecker("Cert C++: ERR50-CPP");
logChecker("Cert C++: ERR51-CPP"); // style
logChecker("Cert C++: ERR52-CPP"); // style
logChecker("Cert C++: ERR53-CPP");
logChecker("Cert C++: ERR54-CPP");
logChecker("Cert C++: ERR55-CPP");
logChecker("Cert C++: ERR56-CPP");
logChecker("Cert C++: ERR58-CPP");
logChecker("Cert C++: ERR59-CPP"); // warning
logChecker("Cert C++: ERR60-CPP"); // warning
logChecker("Cert C++: ERR61-CPP"); // style
logChecker("Cert C++: ERR62-CPP"); // style
logChecker("Cert C: EXP32-C"); // warning
logChecker("Cert C: EXP35-C");
logChecker("Cert C: EXP36-C"); // style
logChecker("Cert C: EXP37-C"); // style
logChecker("Cert C: EXP39-C"); // style
logChecker("Cert C: EXP40-C"); // style
logChecker("Cert C: EXP42-C"); // style
logChecker("Cert C: EXP43-C"); // style
logChecker("Cert C: EXP45-C"); // warning
logChecker("Cert C++: EXP50-CPP");
logChecker("Cert C++: EXP51-CPP");
logChecker("Cert C++: EXP55-CPP");
logChecker("Cert C++: EXP56-CPP");
logChecker("Cert C++: EXP57-CPP"); // style
logChecker("Cert C++: EXP58-CPP"); // style
logChecker("Cert C++: EXP59-CPP");
logChecker("Cert C: FIO30-C"); // warning
logChecker("Cert C: FIO32-C"); // style
logChecker("Cert C: FIO34-C"); // style
logChecker("Cert C: FIO37-C");
logChecker("Cert C: FIO38-C"); // style
logChecker("Cert C: FIO40-C"); // style
logChecker("Cert C: FIO41-C"); // style
logChecker("Cert C: FIO44-C"); // warning
logChecker("Cert C: FIO45-C"); // warning
logChecker("Cert C++: FIO51-CPP"); // style
logChecker("Cert C: FLP30-C"); // warning
logChecker("Cert C: FLP36-C"); // portability
logChecker("Cert C: FLP37-C"); // style
logChecker("Cert C: INT30-C"); // warning
logChecker("Cert C: INT31-C"); // warning
logChecker("Cert C: INT32-C"); // warning
logChecker("Cert C: INT33-C"); // warning
logChecker("Cert C: INT34-C"); // warning
logChecker("Cert C: INT35-C"); // warning
logChecker("Cert C: INT36-C"); // warning
logChecker("Cert C++: INT50-CPP"); // style
logChecker("Cert C: MEM33-C"); // style
logChecker("Cert C: MEM35-C"); // warning
logChecker("Cert C: MEM36-C"); // warning
logChecker("Cert C++: MEM52-CPP");
logChecker("Cert C++: MEM53-CPP");
logChecker("Cert C++: MEM54-CPP");
logChecker("Cert C++: MEM55-CPP");
logChecker("Cert C++: MEM57-CPP"); // style
logChecker("Cert C: MSC30-C"); // style
logChecker("Cert C: MSC32-C"); // style
logChecker("Cert C: MSC33-C"); // style
logChecker("Cert C: MSC38-C"); // warning
logChecker("Cert C: MSC39-C"); // warning
logChecker("Cert C: MSC40-C"); // warning
logChecker("Cert C++: MSC50-CPP"); // style
logChecker("Cert C++: MSC51-CPP"); // style
logChecker("Cert C++: MSC53-CPP");
logChecker("Cert C++: MSC54-CPP"); // style
logChecker("Cert C++: OOP51-CPP");
logChecker("Cert C++: OOP55-CPP");
logChecker("Cert C++: OOP56-CPP");
logChecker("Cert C++: OOP57-CPP");
logChecker("Cert C++: OOP58-CPP"); // style
logChecker("Cert C: PRE31-C"); // style
logChecker("Cert C: SIG30-C"); // style
logChecker("Cert C: SIG31-C"); // warning
logChecker("Cert C: SIG34-C"); // style
logChecker("Cert C: SIG35-C"); // warning
logChecker("Cert C: STR31-C"); // warning
logChecker("Cert C: STR32-C"); // warning
logChecker("Cert C: STR34-C"); // warning
logChecker("Cert C: STR38-C"); // style
logChecker("Cert C++: STR50-CPP");
logChecker("Cert C++: STR53-CPP");
logChecker("Misra C: 10.1"); // style
logChecker("Misra C: 10.2"); // style
logChecker("Misra C: 10.3"); // style
logChecker("Misra C: 10.4"); // style
logChecker("Misra C: 10.5"); // style
logChecker("Misra C: 10.6"); // style
logChecker("Misra C: 10.7"); // style
logChecker("Misra C: 10.8"); // style
logChecker("Misra C: 11.10"); // style
logChecker("Misra C: 12.6");
logChecker("Misra C: 1.5"); // style
logChecker("Misra C: 17.10"); // style
logChecker("Misra C: 17.11"); // style
logChecker("Misra C: 17.12"); // style
logChecker("Misra C: 17.9"); // style
logChecker("Misra C: 18.10"); // style
logChecker("Misra C: 18.9"); // style
logChecker("Misra C: 21.12"); // style
logChecker("Misra C: 21.22"); // style
logChecker("Misra C: 21.23"); // style
logChecker("Misra C: 21.24"); // style
logChecker("Misra C: 21.25"); // warning
logChecker("Misra C: 21.26"); // warning
logChecker("Misra C: 22.11");
logChecker("Misra C: 22.12"); // style
logChecker("Misra C: 22.13"); // style
logChecker("Misra C: 22.14"); // style
logChecker("Misra C: 22.15"); // style
logChecker("Misra C: 22.16"); // warning
logChecker("Misra C: 22.17"); // warning
logChecker("Misra C: 22.18"); // warning
logChecker("Misra C: 22.19"); // warning
logChecker("Misra C: 22.20"); // style
logChecker("Misra C: 23.1"); // style
logChecker("Misra C: 23.2"); // style
logChecker("Misra C: 23.3"); // style
logChecker("Misra C: 23.4"); // style
logChecker("Misra C: 23.5"); // style
logChecker("Misra C: 23.6"); // style
logChecker("Misra C: 23.7"); // style
logChecker("Misra C: 23.8"); // style
logChecker("Misra C: 6.3"); // style
logChecker("Misra C: 7.5"); // style
logChecker("Misra C: 7.6"); // style
logChecker("Misra C: 8.10"); // style
logChecker("Misra C: 8.15"); // style
logChecker("Misra C: 8.16"); // style
logChecker("Misra C: 8.17"); // style
logChecker("Misra C: 9.6"); // style
logChecker("Misra C: 9.7");
logChecker("Misra C++: M0-1-11"); // style
logChecker("Misra C++: M0-1-12"); // style
logChecker("Misra C++: M0-1-4"); // style
logChecker("Misra C++: M0-1-5"); // style
logChecker("Misra C++: M0-1-7"); // style
logChecker("Misra C++: M0-1-8"); // style
logChecker("Misra C++: M10-1-1"); // style
logChecker("Misra C++: M10-1-2"); // style
logChecker("Misra C++: M10-1-3"); // style
logChecker("Misra C++: M10-2-1"); // style
logChecker("Misra C++: M10-3-3"); // style
logChecker("Misra C++: M11-0-1"); // style
logChecker("Misra C++: M12-8-2"); // style
logChecker("Misra C++: M14-5-1"); // warning
logChecker("Misra C++: M14-5-2"); // warning
logChecker("Misra C++: M14-5-3"); // warning
logChecker("Misra C++: M14-6-1"); // warning
logChecker("Misra C++: M14-7-1"); // style
logChecker("Misra C++: M14-7-2"); // style
logChecker("Misra C++: M15-0-3");
logChecker("Misra C++: M15-1-1");
logChecker("Misra C++: M15-1-2"); // style
logChecker("Misra C++: M15-1-3"); // style
logChecker("Misra C++: M15-3-2"); // warning
logChecker("Misra C++: M15-3-3");
logChecker("Misra C++: M15-4-1"); // style
logChecker("Misra C++: M16-0-1"); // style
logChecker("Misra C++: M16-0-2"); // style
logChecker("Misra C++: M16-0-3"); // style
logChecker("Misra C++: M16-0-4"); // style
logChecker("Misra C++: M16-1-1"); // style
logChecker("Misra C++: M16-2-1"); // style
logChecker("Misra C++: M16-2-2"); // style
logChecker("Misra C++: M16-2-3"); // style
logChecker("Misra C++: M16-2-4"); // style
logChecker("Misra C++: M16-2-5"); // style
logChecker("Misra C++: M16-2-6"); // style
logChecker("Misra C++: M16-3-1"); // style
logChecker("Misra C++: M16-3-2"); // style
logChecker("Misra C++: M17-0-1"); // style
logChecker("Misra C++: M17-0-2"); // style
logChecker("Misra C++: M17-0-3"); // style
logChecker("Misra C++: M17-0-5"); // style
logChecker("Misra C++: M18-0-1"); // style
logChecker("Misra C++: M18-0-2"); // style
logChecker("Misra C++: M18-0-3"); // style
logChecker("Misra C++: M18-0-4"); // style
logChecker("Misra C++: M18-0-5"); // style
logChecker("Misra C++: M18-2-1"); // style
logChecker("Misra C++: M18-4-1"); // style
logChecker("Misra C++: M18-7-1"); // style
logChecker("Misra C++: M19-3-1"); // style
logChecker("Misra C++: M2-10-1"); // style
logChecker("Misra C++: M2-10-3"); // style
logChecker("Misra C++: M2-10-4"); // style
logChecker("Misra C++: M2-10-5"); // style
logChecker("Misra C++: M2-10-6"); // style
logChecker("Misra C++: M2-13-4"); // style
logChecker("Misra C++: M2-13-5"); // style
logChecker("Misra C++: M27-0-1"); // style
logChecker("Misra C++: M2-7-1"); // style
logChecker("Misra C++: M2-7-2"); // style
logChecker("Misra C++: M2-7-3"); // style
logChecker("Misra C++: M3-1-1"); // style
logChecker("Misra C++: M3-1-2"); // style
logChecker("Misra C++: M3-1-3"); // style
logChecker("Misra C++: M3-2-1");
logChecker("Misra C++: M3-3-1"); // style
logChecker("Misra C++: M3-3-2"); // style
logChecker("Misra C++: M3-9-1"); // style
logChecker("Misra C++: M3-9-2"); // style
logChecker("Misra C++: M3-9-3"); // style
logChecker("Misra C++: M4-10-1"); // style
logChecker("Misra C++: M4-10-2"); // style
logChecker("Misra C++: M4-5-1"); // style
logChecker("Misra C++: M4-5-2"); // style
logChecker("Misra C++: M4-5-3"); // style
logChecker("Misra C++: M5-0-10"); // style
logChecker("Misra C++: M5-0-11"); // style
logChecker("Misra C++: M5-0-12"); // style
logChecker("Misra C++: M5-0-14"); // style
logChecker("Misra C++: M5-0-15"); // style
logChecker("Misra C++: M5-0-20"); // style
logChecker("Misra C++: M5-0-21"); // style
logChecker("Misra C++: M5-0-2"); // style
logChecker("Misra C++: M5-0-3"); // style
logChecker("Misra C++: M5-0-4"); // style
logChecker("Misra C++: M5-0-5"); // style
logChecker("Misra C++: M5-0-6"); // style
logChecker("Misra C++: M5-0-7"); // style
logChecker("Misra C++: M5-0-8"); // style
logChecker("Misra C++: M5-0-9"); // style
logChecker("Misra C++: M5-2-10"); // style
logChecker("Misra C++: M5-2-11"); // style
logChecker("Misra C++: M5-2-12"); // style
logChecker("Misra C++: M5-2-1"); // style
logChecker("Misra C++: M5-2-2"); // style
logChecker("Misra C++: M5-2-3"); // style
logChecker("Misra C++: M5-2-5"); // style
logChecker("Misra C++: M5-2-6"); // style
logChecker("Misra C++: M5-2-7"); // style
logChecker("Misra C++: M5-2-8"); // style
logChecker("Misra C++: M5-2-9"); // style
logChecker("Misra C++: M5-3-1"); // style
logChecker("Misra C++: M5-3-2"); // style
logChecker("Misra C++: M5-3-3"); // style
logChecker("Misra C++: M6-2-3"); // style
logChecker("Misra C++: M6-4-4"); // style
logChecker("Misra C++: M6-4-6"); // style
logChecker("Misra C++: M6-4-7"); // style
logChecker("Misra C++: M6-4-8"); // style
logChecker("Misra C++: M6-5-1"); // style
logChecker("Misra C++: M6-5-2"); // style
logChecker("Misra C++: M6-5-3"); // style
logChecker("Misra C++: M6-5-4"); // style
logChecker("Misra C++: M6-5-5"); // style
logChecker("Misra C++: M6-5-6"); // style
logChecker("Misra C++: M6-6-1"); // style
logChecker("Misra C++: M6-6-3"); // style
logChecker("Misra C++: M6-6-4"); // style
logChecker("Misra C++: M6-6-5"); // style
logChecker("Misra C++: M7-2-1"); // style
logChecker("Misra C++: M7-3-1"); // style
logChecker("Misra C++: M7-3-2"); // style
logChecker("Misra C++: M7-3-3"); // style
logChecker("Misra C++: M7-3-4"); // style
logChecker("Misra C++: M7-3-5"); // style
logChecker("Misra C++: M7-3-6"); // style
logChecker("Misra C++: M7-4-2"); // style
logChecker("Misra C++: M7-4-3"); // style
logChecker("Misra C++: M7-5-3"); // style
logChecker("Misra C++: M8-0-1"); // style
logChecker("Misra C++: M8-3-1"); // style
logChecker("Misra C++: M8-4-4"); // style
logChecker("Misra C++: M9-3-1"); // style
logChecker("Misra C++: M9-5-1"); // style
logChecker("Misra C++: M9-6-2"); // style
logChecker("Misra C++: M9-6-3"); // style
logChecker("Misra C++: M9-6-4"); // style
logChecker("PremiumCheckBufferOverrun::addressOfPointerArithmetic"); // warning
logChecker("PremiumCheckBufferOverrun::negativeBufferSizeCheckedNonZero"); // warning
logChecker("PremiumCheckBufferOverrun::negativeBufferSizeCheckedNonZero"); // warning
logChecker("PremiumCheckHang::infiniteLoop");
logChecker("PremiumCheckHang::infiniteLoopContinue");
logChecker("PremiumCheckOther::arrayPointerComparison"); // style
logChecker("PremiumCheckOther::knownResult"); // style
logChecker("PremiumCheckOther::lossOfPrecision"); // style
logChecker("PremiumCheckOther::pointerCast"); // style
logChecker("PremiumCheckOther::reassignInLoop"); // style
logChecker("PremiumCheckOther::unreachableCode"); // style
logChecker("PremiumCheckStrictAlias::strictAliasCondition"); // warning
logChecker("PremiumCheckUninitVar::uninitmember");
logChecker("PremiumCheckUninitVar::uninitvar");
logChecker("PremiumCheckUnusedVar::unreadVariable"); // style
logChecker("PremiumCheckUnusedVar::unusedPrivateMember"); // style
"""
for line in premium_checkers.split('\n'):
res = re.match(r'logChecker\("([^"]+)"\);.*', line)
print(' const std::map<std::string, std::string> premiumCheckers{')
premium_checkers = []
for filename in sorted(glob.glob(os.path.expanduser('~/cppchecksolutions/addon/src/*.cpp'))):
for line in open(filename,'rt'):
res = re.match(r'[ \t]*logChecker\("([^"]+)"\);.*', line)
if res is None:
continue
if line.find('//') > 0:
req = line[line.find('//')+2:].strip()
else:
req = ''
print(' {"%s","%s"},' % (res.group(1), req))
premium_checkers.append(' {"%s","%s"}' % (res.group(1), req))
print(',\n'.join(sorted(premium_checkers)))
print(' };')
print('};\n\n')
print("""
struct MisraInfo {
int a;
int b;
const char* str;
int amendment;
};
const char Req[] = "Required";
const char Adv[] = "Advisory";
const char Man[] = "Mandatory";
const MisraInfo misraC2012Rules[] =
const std::vector<MisraInfo> misraC2012Rules =
{
{1,1,Req,0},
{1,2,Adv,0},
@ -663,7 +264,7 @@ const MisraInfo misraC2012Rules[] =
{23,8,Req,3}, // Amendment 3
};
static std::map<std::string, std::string> misraRuleSeverity{
const std::map<std::string, std::string> misraRuleSeverity{
{"1.1", "error"}, //{"syntaxError", "unknownMacro"}},
{"1.3", "error"}, //most "error"
{"2.1", "style"}, //{"alwaysFalse", "duplicateBreak"}},
@ -694,9 +295,6 @@ static std::map<std::string, std::string> misraRuleSeverity{
{"22.4", "error"}, //{"writeReadOnlyFile"}},
{"22.6", "error"}, //{"useClosedFile"}}
};
}
""")
}""")