Xcode 6.4(6E35b)でclang静的解析を使用している可能性があります。私は問題のメモリを明示的に解放しますが、解放は別のコンパイル単位で行われます。ここに私のMWEがあります:clang false positiveリーク警告を抑制しようとしています
file2.c:実際の解放を行います。
file1.c:メモリを割り当て、明示的に外部関数を使用して解放します。
#include <stdlib.h>
void my_free(const void* p);
int main(int argc, char* argv[]) {
void* data = malloc(1);
if(data) my_free(data);
return 0; /* <-- "Potential leak of memory pointed to by 'data'" */
}
私はその呼び出しと同じコンパイル単位でmy_free()
を定義
my_free()
を起動する必要があります。
FAQ and How to Deal with Common False Positivesまで読んでいますが、私の状況には対応していません。私が本当に問題の記憶を解放していることを保証するために私は何ができますか?バージョン情報場合
が関連している:それはあなたのヘッダファイルで、解析のための固有のコードを追加することです解決する
% clang --version
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
「my_free」が「my_malloc」とペアになっていると思います。 – Groo
@Groo:良い点。このMWEは、それが示唆しているところでは少し誤解を招くかもしれませんが、私は割り当てと割り当て解除が一般に対になるはずであることに同意します。 –