GCC diagnostic を使って警告を一時的に無効にする例2019年04月28日 15時17分19秒

GCC には様々な種類の警告を有効にできる。警告を見つけて直すのは症状として出ていないバグを潰すのに有効な方法だ。しかし、その様な警告の中には、所有権のないヘッダーファイルから警告が出たり、直すことによってバグの為に偶然動いていたコードを壊してしまう事もある。

その様な時に特定部分だけの警告を無効にすることが出来る。

    char buf[10], *char_ptr = buf;

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wsizeof-pointer-memaccess"
    memset(char_ptr, '\0', sizeof(char_ptr));
#pragma GCC diagnostic pop