あるとすれば、-Wformat との違いは何ですか?
これは GCC から借用したもので、置き換えに適したドロップになるように設計されています。GCC の説明:
  -Wformat=2
  
  -Wformat に加えて、-Wformat に含まれていないフォーマット チェックを有効にします。現在、`-Wformat -Wformat-nonliteral -Wformat-security -Wformat-y2k' と同等です。
それはあなたの質問のほとんどに答えます。
  これは何かをしますか?
はい。次のプログラムは、の存在 (または不在) に応じて、さまざまな警告を発します-Wformat=2。
__attribute__((__format__ (__printf__, 1, 2)))
static void F(const char* const pString, ...) {
}
int main(int argc, const char* argv[]) {
    F("", 0);
    F(argv[0], 0);
    const char str[] = "aaa";
    F(str, 0);
    F("%i", 0);
    F("%i");
    return 0;
}
注: Clang が にロールイン-Wformat-securityしたよう-Wformatです。
最後に、私はテスト-Wformat-y2kしていませんが、GCC によって次のように定義されています。
  -Wformat-y2k
  
  -Wformat が指定されている場合、年が 2 桁しか表示されない可能性がある strftime フォーマットについても警告します。