初めてclangで構築している(レガシー)コードがいくつかあります。コードは次のようなものです。
sprintf(buf, "%s <%s ????>", p1, p2);
Clang は次の警告を表示します ( のエラー-Werror):
test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
sprintf(buf, "%s <%s ????>", p1, p2);
^
明らかに??>トライグラフとして意図されたものではないので、トライグラフを完全に無効にしたいと思います (ソースは意図的にトライグラフを使用していません)。
私は試し-no-trigraphsましたが、それは実際にはオプションではありません:
clang: warning: argument unused during compilation: '-no-trigraphs'
トリグラフの警告をオフにすることはできます-Wno-trigraphsが、トリグラフの変換が実際に行われることはまったくありません。
注: Trigraph は、使用の意図しない副作用として有効になりました-std=c89。