Why does Polyspace report "MISRA C:2012 10.3 and 10.4"
24 次查看(过去 30 天)
显示 更早的评论
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 个评论
Lorenz Mende
2017-6-23
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.
采纳的回答
Anirban
2022-5-23
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 个评论
更多回答(1 个)
Walter Roberson
2016-11-28
"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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!