Mahlzeit,
ich mache misra für eine C++ code.
Hier habe ich ein Problem mit einer Warnung.
1 | return waitFor([&]() { return ((*MSTPSR[n] & bit) != 0U);}, 100);
|
Hier bekomme ich die Warnung
"This integral or enum output parameter value is not subsequently
checked"
Ich weiß was die Warnung bedeutet, also das ein integer (enum gibt es
hier ja keins) nicht auf Gültigkeit überprüft worden ist. Aber auf
welchem wert? und vor allem welche Variable?
QAC hilfe
1 | void foo(bool & ref);
|
2 |
|
3 | void f1()
|
4 | {
|
5 | bool success;
|
6 | foo(success); // Not OK
|
7 | }
|
8 |
|
9 | void f2()
|
10 | {
|
11 | bool success;
|
12 | foo(success); // OK
|
13 | if(!success)
|
14 | {
|
15 | throw 1;
|
16 | }
|
17 | }
|
also in f2() wird nachher success noch einmal überprüft
in einer header habe ich:
1 | volatile uint32_t *MSTPSR[12];
|
2 | volatile uint32_t *_MSTPSR[] =
|
3 | {
|
4 | (uint32_t *)0xE6150030, (uint32_t *)0xE6150038, (uint32_t *)0xE6150040, (uint32_t *)0xE6150048,
|
5 | (uint32_t *)0xE615004C, (uint32_t *)0xE615003C,
|
6 | (uint32_t *)0xE61501C0, (uint32_t *)0xE61501C4, (uint32_t *)0xE61509A0, (uint32_t *)0xE61509A4,
|
7 | (uint32_t *)0xE61509A8, (uint32_t *)0xE61509AC
|
8 | };
|
Welche Variable muss ich hier wo noch auf was überprüfen um die Warnung
weg zu bekommen?