Clangには次のテストケースがあります。
#if 0
#ifdef D
#else 1 // Should not warn due to C99 6.10p4
#endif
#endif
#if 0
#else 1 // expected-warning {{extra tokens}}
#endif
最初#else 1
のものはスキップされたグループにあるので確かに問題ありませんが、私が見る限り、2番目のものはエラーであるはずです-それはプリプロセッサディレクティブの構文として標準が指定するものと一致しません-それでもGCCとMicrosoftC++は同意します警告を与えるだけです。私は何が欠けていますか?