Why does Polyspace report "MISRA C:2012 10.3 and 10.4"
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
In a C project I have a "typedef unsigned char BOOL; and true and false declared as BOOL" and in a function with parameter pointer to a BOOL, I do an assign *Pointer_To_BOOL = TRUE/FALSE and I get "MISRA C:2012 10.3 (Required) The value of an expression shall not be assigned to an object with a narrower essential type or of a different essential type category. The expression is assigned to an object with a different essential type category." And also get "MISRA C:2012 10.4 (Required) Both operands of an operator in which the usual arithmetic conversions are performed shall have the same essential type category. The left operand of the == operator has essentially unsigned type while the right operand has essentially Boolean type." where I check *Poiter_To_BOOL against TRUE/FALSE. Why does Polyspace take an parameter *Pointer_To_BOOL as unsigned char and what can I do to stop getting this warnings (refactor/justify).
Thank you, Cristian PASCALAU
3 Commenti
Lorenz Mende
il 23 Giu 2017
Hi Christian, did you already set the -boolean-types with your specific BOOL? If you have done and working with R2016b or lower, than there might be the chance that this is related to a bug and it is fixed in R2017a.
If a update is not possible, you may justify these violations in code -> see chapter "Add Review Comments to Code" in the documentation. It works well, our review process comes too with a justification comment which is detected by doxygen additionally.
Risposta accettata
Anirban
il 23 Mag 2022
Since R2021a, the checkers 10.x treat macros such as TRUE and FALSE that resolve to 1 and 0 as essentially Boolean. See Polyspace release notes.
0 Commenti
Più risposte (1)
Walter Roberson
il 28 Nov 2016
"Why does Polyspace take an parameter *Pointer_To_BOOL as unsigned char"
Because you defined BOOL as unsigned char. You deference a pointer to unsigned char so the result is going to be unsigned char
4 Commenti
Vedere anche
Categorie
Scopri di più su Run Settings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!