[clang] [clang] Respect `CLANG_USE_EXPERIMENTAL_CONST_INTERP` (PR #200716)

Timm Baeder via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 1 07:58:59 PDT 2026


Timm =?utf-8?q?Bäder?= <tbaeder at redhat.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/200716 at github.com>


https://github.com/tbaederr updated https://github.com/llvm/llvm-project/pull/200716

>From 5b4276735c57610f954c9db297357e54a6cdaf4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timm=20B=C3=A4der?= <tbaeder at redhat.com>
Date: Mon, 1 Jun 2026 07:17:53 +0200
Subject: [PATCH 1/2] asdf

---
 clang/lib/Driver/ToolChains/Clang.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 7657afb14f077..f408dd1c9d5c8 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -6680,7 +6680,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
 
   Args.AddLastArg(CmdArgs, options::OPT_fexperimental_library);
 
-  if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter))
+  if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter) ||
+      CLANG_USE_EXPERIMENTAL_CONST_INTERP)
     CmdArgs.push_back("-fexperimental-new-constant-interpreter");
 
   if (Arg *A = Args.getLastArg(options::OPT_fbracket_depth_EQ)) {

>From ab9cebf2d0d7d38f01c3433c43eb18eba5fddb47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timm=20B=C3=A4der?= <tbaeder at redhat.com>
Date: Mon, 1 Jun 2026 16:58:34 +0200
Subject: [PATCH 2/2] set it in ExecuteCompilerInvocation instead.

---
 clang/lib/Driver/ToolChains/Clang.cpp                | 3 +--
 clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index f408dd1c9d5c8..7657afb14f077 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -6680,8 +6680,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
 
   Args.AddLastArg(CmdArgs, options::OPT_fexperimental_library);
 
-  if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter) ||
-      CLANG_USE_EXPERIMENTAL_CONST_INTERP)
+  if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter))
     CmdArgs.push_back("-fexperimental-new-constant-interpreter");
 
   if (Arg *A = Args.getLastArg(options::OPT_fbracket_depth_EQ)) {
diff --git a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
index e4622496758ac..db92c7af4276c 100644
--- a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
+++ b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
@@ -184,6 +184,8 @@ CreateFrontendAction(CompilerInstance &CI) {
 
   const FrontendOptions &FEOpts = CI.getFrontendOpts();
 
+  CI.getLangOpts().EnableNewConstInterp = CLANG_USE_EXPERIMENTAL_CONST_INTERP;
+
   if (CI.getLangOpts().HLSL)
     Act = std::make_unique<HLSLFrontendAction>(std::move(Act));
 



More information about the cfe-commits mailing list