dexonsmith added a comment. In D124974#3504986 <https://reviews.llvm.org/D124974#3504986>, @porglezomp wrote:
> Ah, so it'd be a test that passes pretty trivially on any bot that doesn't > have a custom version of `CLANG_DEFAULT_STD_C` and `CLANG_DEFAULT_STD_CXX` > like the default config, but could get caught by any other bots that do set > it? > > What's the best way to get the compiler to report the standard it's using for > this test? > > For C++ I can do: > > clang++ -xc++ -dM -E - < /dev/null | grep cplusplus > > And it will print e.g. > > #define __cplusplus 199711L > > But that requires quite some decoding to compare against > `CLANG_DEFAULT_STD_CXX` which would look like `LangStandard::lang_gnucxx98`. Yeah, that seems awkward. My concern with lacking a test is that someone could easily remove this in the future when trying to prune unused `#include`s. Another solution might be to change this to a compile error. I think it'd work to change the `#cmakedefine` logic to: #cmakedefine CLANG_DEFAULT_STD_C LangStandard::lang_${CLANG_DEFAULT_STD_C} // Always #define something so that missing the config.h #include at use sites // becomes a compile error. #ifndef CLANG_DEFAULT_STD_C #define CLANG_DEFAULT_STD_C LangStandard::lang_unknown #endif and then update the code to: case Language::C: if (CLANG_DEFAULT_STD_C != LangStandard::lang_unknown) return CLANG_DEFAULT_STD_C; // The PS4 uses C99 as the default C standard. if (T.isPS4()) return LangStandard::lang_gnu99; return LangStandard::lang_gnu17; (without the `#ifdef`) WDYT? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D124974/new/ https://reviews.llvm.org/D124974 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits