[clang] [NFC][Clang Improve performance of `DoMarkVarDeclReferenced` (PR #161648)

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 2 03:32:42 PDT 2025


https://github.com/cor3ntin created https://github.com/llvm/llvm-project/pull/161648

Address post commit feedback from #161231

>From 47fe92b868a2d9dc2a1a0760ff728f73e2c18cd2 Mon Sep 17 00:00:00 2001
From: Corentin Jabot <corentinjabot at gmail.com>
Date: Thu, 2 Oct 2025 12:30:42 +0200
Subject: [PATCH] [NFC][Clang Improve performance of `DoMarkVarDeclReferenced`

Address post commit feedback from #161231
---
 clang/lib/Sema/SemaExpr.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 06b2529011c74..4d3c7d611f370 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -20107,9 +20107,10 @@ static void DoMarkVarDeclReferenced(
   bool NeededForConstantEvaluation =
       isPotentiallyConstantEvaluatedContext(SemaRef) && UsableInConstantExpr;
 
-  bool NeedDefinition = OdrUse == OdrUseContext::Used ||
-                        NeededForConstantEvaluation ||
-                        Var->getType()->isUndeducedType();
+  bool NeedDefinition =
+      OdrUse == OdrUseContext::Used || NeededForConstantEvaluation ||
+      (TSK != clang::TSK_Undeclared && !UsableInConstantExpr &&
+       Var->getType()->isUndeducedType());
 
   assert(!isa<VarTemplatePartialSpecializationDecl>(Var) &&
          "Can't instantiate a partial template specialization.");



More information about the cfe-commits mailing list