================ @@ -851,6 +851,28 @@ static void InitializePredefinedMacros(const TargetInfo &TI, Twine(getClangFullCPPVersion()) + "\""); // Initialize language-specific preprocessor defines. + if (LangOpts.getStdlibHardeningMode()) { + const char *StdlibHardeningStr; + + switch (LangOpts.getStdlibHardeningMode()) { + case clang::LangOptions::STDLIB_HARDENING_MODE_NOT_SPECIFIED: + llvm_unreachable("Unexpected libc++ hardening mode value"); + case clang::LangOptions::STDLIB_HARDENING_MODE_NONE: + StdlibHardeningStr = "_STDLIB_HARDENING_MODE_NONE"; ---------------- ldionne wrote:
The macros used by libc++ are `_LIBCPP_HARDENING_MODE`, `_LIBCPP_HARDENING_MODE_NONE` & al. While the naming of the clang option should use the "any standard library" terminology, the actual macros we set must be the libc++ ones. If libstdc++ had something similar in the future, we would switch to: ```c++ if (LangOpts.getStdlibHardeningMode()) { if (stdlib is libc++) { set-macros-for-libcxx; } else { set-macros-for-libstdcxx; } } ``` https://github.com/llvm/llvm-project/pull/78763 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits