は、私は、以下の機能を持っていると仮定すると:frama-cにバッファアクセス節を指定することはできますか?
void process_data(uint32_t * data, size_t length) {
for (size_t i = 0; i < length; i++) {
foo(data[i]);
}
}
は、どのように私は、「この機能はdata[i]
条件を満たすi < length
へのすべてのアクセスを保証します」FRAMA-Cを伝えることができますか?私が理解する限り、data
というコードのすべての行の近くにアサーションを置くことができますが、より良い方法がありますか?
あなたの質問 - 絶対に保証されていますか? 'data'はNULLではなく、' uint32_t'のコレクションを指していますか?おそらく 'for'ループに入る前にアサーションが必要でしょうか? – t0mm13b
はい、 'data'は' \ valid'で、uint32_tの配列を指しています。 –
「この関数によって保証される」とはどういう意味ですか? 「この関数が必要です」と言いたいのですが(それ以外の場合は無効なメモリアクセスがあります)、そうですか? – Anne