diff --git a/addons/test/misra/misra-test.c b/addons/test/misra/misra-test.c index bd6775533..1693ff947 100644 --- a/addons/test/misra/misra-test.c +++ b/addons/test/misra/misra-test.c @@ -415,10 +415,26 @@ void misra_14_1() { } -void misra_14_2() { +void misra_14_2_init_value(int32_t *var) { + *var = 0; +} +void misra_14_2(bool b) { for (dostuff();a<10;a++) {} // 14.2 for (;i++<10;) {} // 14.2 for (;i<10;dostuff()) {} // TODO + int32_t g = 0; + for (int32_t i2 = 0; i2 < 8; ++i2) { + i2 += 2; // FIXME False negative for "14.2". Trac #9490 + g += 2; // no-warning + } + for (misra_14_2_init_value(&i); i < 10; ++i) {} // no-warning FIXME: False positive for 14.2 Trac #9491 + bool abort = false; + for (i = 0; (i < 10) && !abort; ++i) { // no-warning + if (b) { + abort = true; + } + } + for (;;) {} // no-warning // TODO check more variants }