Purifyを使用したクラス/構造パディングの非常に厄介な副作用が発生します。例えば
struct something {
int field1;
char field2;
};
/* ... */
struct something smth, smth2;
smth.field1 = 1;
smth.field2 = 'A';
smth2 = smth;
最後の行は、初期化されたメモリの 3 バイトがアクセスされたことを示す UMR 警告をトリガーする可能性が高いです。これは明らかに誤検知です。構造体の最後の 3 バイトにユーザー データがなく、単なるパディングです。
多くの場合、警告によってログ ファイルがすぐにいっぱいになり、他の実際の問題を確認するのが非常に難しくなります。
誤検知を抑制する方法を知っている人はいますか?