[clang] [Clang][NFC] Avoid repeating copy of std::string in lambda implementation (PR #153863)

Shafik Yaghmour via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 15 12:46:34 PDT 2025


https://github.com/shafik created https://github.com/llvm/llvm-project/pull/153863

Static analysis flagged this code because it will cause unneeded copies of std::string. This fix is merely to use const auto & in the trailing return type.

>From f0c903995ffb19e02394601179f05082c132d037 Mon Sep 17 00:00:00 2001
From: Shafik Yaghmour <shafik.yaghmour at intel.com>
Date: Fri, 15 Aug 2025 12:43:25 -0700
Subject: [PATCH] [Clang][NFC] Avoid repeating copy of std::string in lambda
 implementation

Static analysis flagged this code because it will cause unneeded copies of
std::string. This fix is merely to use const auto & in the trailing return type.
---
 .../clang/Tooling/DependencyScanning/DependencyScanningTool.h   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
index c3601a4e73e1f..81177a04654bb 100644
--- a/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
+++ b/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h
@@ -205,7 +205,7 @@ class FullDependencyConsumer : public DependencyConsumer {
       std::vector<P1689ModuleInfo> Requires) override {
     ModuleName = Provided ? Provided->ModuleName : "";
     llvm::transform(Requires, std::back_inserter(NamedModuleDeps),
-                    [](const auto &Module) { return Module.ModuleName; });
+                    [](const auto &Module) -> const auto & { return Module.ModuleName; });
   }
 
   TranslationUnitDeps takeTranslationUnitDeps();



More information about the cfe-commits mailing list