False positive candidate Rule 10.3 for float array zero-initialization

3 ビュー (過去 30 日間)
David Sosa
David Sosa 2022 年 8 月 4 日
コメント済み: David Sosa 2022 年 8 月 4 日
Hello,
Polyspace is raising the 10.3 MISRA violation for array initializations like the one below:
float data[3*3] = {0}
My question: is this the intended behavior of Polyspace? Shouldn't this type of zero-initialization be allowed?
My impression is that the MISRA 2012 standard allows this by exception. Other static analyzers do not raise a warning. Empty array-initialization makes the warning go away, so we may just do that.
Thanks.

採用された回答

Anirban
Anirban 2022 年 8 月 4 日
編集済み: Anirban 2022 年 8 月 4 日
The problem is not because of the array initialization. Indeed, as you say, MISRA C:2012 standard allows an exception of rule 10.3 for aggregate initializations with {0}.
The violation is shown because you are assigning 0 to a float variable (the two have different essential types, see here for essential types). But the MISRA exception for {0} covers aggregates of all data types. So, this is indeed a false positive (and will be fixed in a future release).
  3 件のコメント
Anirban
Anirban 2022 年 8 月 4 日
Thanks for pointing to the discussion. Using 0.0f would remove the Polyspace violation, but not address the intention behind the MISRA exception. This is indeed a false positive and will be fixed in a future release.
I edited the answer above to correct this.
David Sosa
David Sosa 2022 年 8 月 4 日
Great! Thanks for you reply.
Cheers.

サインインしてコメントする。

その他の回答 (0 件)

製品


リリース

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by