[clang] [clang-cl] Add cl compiler build deterministic options for compatibility. (PR #194779)

Daniel Paoliello via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 10 11:58:38 PDT 2026


================
@@ -8821,6 +8783,60 @@ void Clang::AddClangCLArgs(const ArgList &Args, types::ID InputType,
     CmdArgs.push_back(Args.MakeArgString(
         Twine("-loader-replaceable-function=") + FuncOverride));
   }
+
+  auto findMacro = [&](const std::string &Macro, bool claim = false) {
+    for (const auto *A : Args.filtered(options::OPT_D, options::OPT_U)) {
+      const std::string v(A->getValue());
+      if (v == Macro || v.find(Macro + '=') != std::string::npos)
+        if (claim)
+          A->claim();
+        return true;
+    }
+    return false;
+  };
+
+  if (Args.hasArg(options::OPT__SLASH_experimental_deterministic)) {
+    CmdArgs.push_back("-Wdate-time");
+
+    if (Args.hasArg(options::OPT_mincremental_linker_compatible)) {
----------------
dpaoliello wrote:

But if `/experimental:deterministic` sets `-mno-incremental-linker-compatible` (below), then I don't think we need to warn for that combination.

https://github.com/llvm/llvm-project/pull/194779


More information about the cfe-commits mailing list