C++

gcc で sanitizer を使う

C++

tl;dr $ gcc -fsanitize=undefined -fno-sanitize-recover=all foo.c $ UBSAN_OPTIONS='verbosity=1:abort_on_error=1:handle_abort=2:disable_coredump=0' ./a.out 詳細 gcc では asan (address sanitizer), ubsan (undefined behavior sanitizer) といった…

bitfield templateでハマった件

C++

C++ではテンプレートを使ってビットフィールドを実現するというテクニックがあるようです(検索すると色々出てきます)。しかしこれは注意して実装しないとハマるであろう落とし穴があった(私もハマりました)のでメモしておきます(gcc 4.9.2, clang 3.5.0で検…