C コードのメモリ リークを見つけるために、自分のマシン (ubuntu) に Clang をインストールしました。次のように、その動作を確認するためにサンプルコードを作成しました。
/* File: hello.c for leak detection */
#include <stdio.h>
#include <stdlib.h>
void *x;
int main() {
x = malloc(2);
x = 0; // Memory leak
return 0;
}
私はインターネットでコンパイルするためのいくつかのオプションを見つけました
$ scan-build clang --analyze hello.c
と
$ scan-build clang -fsanitize=address hello.c
しかし、どれもメモリ リークの兆候を示していません。
scan-build: 静的分析に「/usr/bin/clang」を使用しています
scan-build: レポートが含まれていないため、ディレクトリ「/tmp/scan-build-2015-07-02-122717-16928-1」を削除しています。
scan-build: バグは見つかりませんでした。
メモリリークの検出にClangを正しく使用する方法を教えてください。