Clangには、実行時に問題を検出するためにオンにできるさまざまなサニタイザーがあります。
ただし、併用できない消毒剤もあります。何故ですか?
clang++-3.9 -std=c++1z -g -fsanitize=memory -fsanitize=address -o main main.cpp 1
clang: error: invalid argument '-fsanitize=address' not allowed with '-fsanitize=memory'
大したことではありませんが、単体テストを実行すると、必要以上に時間がかかります。これは、同じテスト用に複数のバイナリを作成し、それぞれを個別に実行しているためです。
clang++-3.9 -std=c++1z -g -fsanitize=address -o test1 test.cpp
clang++-3.9 -std=c++1z -g -fsanitize=memory -fsanitize=undefined -o test2 test.cpp