From 996000da521971440f96533dfc6d9ca044f5a898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 4 Aug 2019 12:24:28 +0200 Subject: [PATCH] Fixed #9208 (MISRA addon crashes on enum with constant expression) --- addons/misra.py | 2 +- addons/test/misra/misra-test.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/misra.py b/addons/misra.py index d81ef7222..564081d02 100755 --- a/addons/misra.py +++ b/addons/misra.py @@ -925,7 +925,7 @@ class MisraChecker: e_token = scope.bodyStart.next while e_token != scope.bodyEnd: if e_token.str == '(': - e_token.str = e_token.link + e_token = e_token.link continue if not e_token.previous.str in ',{': e_token = e_token.next diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index 42333f6cd..7be4b21c2 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -1,5 +1,5 @@ // To test: -// ~/cppcheck/cppcheck --dump misra-test.c && python ../misra.py -verify misra-test.c.dump +// ~/cppcheck/cppcheck --dump misra-test.c && python ../../misra.py -verify misra-test.c.dump #include "path\file.h" // 20.2 #include /*abc*/ "file.h" // no warning @@ -153,6 +153,7 @@ enum misra_8_12_a { misra_a1 = 1, misra_a2 = 2, misra_a3, misra_a4 = 3 }; //8.12 enum misra_8_12_b { misra_b1, misra_b2, misra_b3 = 3, misra_b4 = 3 }; // no-warning enum misra_8_12_c { misra_c1 = misra_a1, misra_c2 = 1 }; // no-warning enum misra_8_12_d { misra_d1 = 1, misra_d2 = 2, misra_d3 = misra_d1 }; // no-warning +enum misra_8_12_e { misra_e1 = sizeof(int), misra_e2}; // no-crash void misra_8_14(char * restrict str) {} // 8.14