C++相談室 part121 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
汗を見ながら最適化が掛かるか否かを見てたんだけど
void foo() {
// ← ここに挿入する
printf("%d\n", *p);
printf("%d\n", *p);
return;
}
を基本にして
int* p = static_cast<int*>(malloc(sizeof(int)));
これはmallocの呼び出しからして消えた(つまりメモリリークするようにしか見えないのにメモリリークしないコードが生成された)
int* p = bar(); // 適当な関数
これは最適化が掛からなかった(つまり2回メモリから読み込んだ)
この違いは何だろう。
コンパイラはclang 3.7.0(370/final)
■ このスレッドは過去ログ倉庫に格納されています