Why does Polyspace report "MISRA C:2012 10.3 and 10.4"
17 ビュー (過去 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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Run Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!