False negatives for MISRA 9.3 missed for float array partial initialization

4 ビュー (過去 30 日間)
David Sosa
David Sosa 2022 年 8 月 5 日
編集済み: David Sosa 2022 年 8 月 11 日
Hello,
Initializing an array of float in the following way:
float array_a[10] = { 0.0 };
should raise the MISRA violation 9.3, that forbids partial array initialization. However the polyspace code prover is not detecting this
violation. Please confirm if this is a false negative or some other issue. Thanks in advance.
Related to the question here:

採用された回答

Christian Bard
Christian Bard 2022 年 8 月 10 日
That is a specific Polyspace implementation of the rule 9.3. We have extended the exception 1 of the rule 9.3 with 0.0 and 0.0f.
  3 件のコメント
Christian Bard
Christian Bard 2022 年 8 月 11 日
Amplification of the rule is about to initialize all elements of the array as soon as explicitely one is initialized. Exception applies on 0 and it looks like that float array_f[10] = { 0 }; is compliant but not float array_f[10] = { 0.0f }; Same for double array_d[10] = { 0 }; but not for double array_d[10] = {0.0};
From my stand point, not including 0.0 and 0.0f is really a very strict application of the rule because almost all compilers will mostly generate same assembly code for 0, 0.0 and 0.0f. Including 0.0 and 0.0f do not go against its rationale.
David Sosa
David Sosa 2022 年 8 月 11 日
編集済み: David Sosa 2022 年 8 月 11 日
Ok. I understand the your rationale. Thanks for the detailed reply.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGenerate Report についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by