瀏覽代碼

Merge topic 'pass-trivial-by-value'

b1fdab3cc1 source: Pass small and trivially copyable types by value
7829ea76ad source: Pass cmFileTime by value
99c10afc26 source: Pass trivial dap::*Event by value
0bcb8d6e3c source: Pass cmFileAPI::Object by value
964e992ec5 source: Pass cmCTestResourceAllocator::Resource by value
ee1c32b6d7 source: Pass cmBuildOptions by value
fa0e5906ff source: Pass cmStringRange by value
0c4040057a source: Pass cm::string_view by value

Acked-by: Kitware Robot <[email protected]>
Merge-request: !10948
Brad King 2 月之前
父節點
當前提交
383406fc18
共有 76 個文件被更改,包括 205 次插入218 次删除
  1. 0 1
      .gitlab/ci/env_fedora42_clazy.sh
  2. 0 12
      Source/CTest/cmCTestResourceAllocator.cxx
  3. 9 2
      Source/CTest/cmCTestResourceAllocator.h
  4. 1 1
      Source/CTest/cmCTestTestHandler.cxx
  5. 1 1
      Source/CTest/cmCTestTestHandler.h
  6. 6 10
      Source/cmArgumentParser.cxx
  7. 0 2
      Source/cmBuildOptions.h
  8. 5 5
      Source/cmComputeLinkDepends.cxx
  9. 4 4
      Source/cmComputeLinkDepends.h
  10. 1 1
      Source/cmCoreTryCompile.cxx
  11. 3 4
      Source/cmCoreTryCompile.h
  12. 5 8
      Source/cmDebuggerAdapter.cxx
  13. 5 6
      Source/cmDebuggerBreakpointManager.cxx
  14. 1 2
      Source/cmDebuggerExceptionManager.cxx
  15. 1 2
      Source/cmDebuggerVariablesHelper.cxx
  16. 1 1
      Source/cmDebuggerVariablesHelper.h
  17. 3 3
      Source/cmDuration.cxx
  18. 3 3
      Source/cmDuration.h
  19. 1 1
      Source/cmExportFileGenerator.cxx
  20. 1 1
      Source/cmExportInstallFileGenerator.h
  21. 40 12
      Source/cmFileAPI.cxx
  22. 13 16
      Source/cmFileAPI.h
  23. 3 4
      Source/cmFileCommand.cxx
  24. 10 20
      Source/cmFileTime.h
  25. 2 3
      Source/cmGeneratorExpression.cxx
  26. 1 1
      Source/cmGeneratorExpression.h
  27. 3 3
      Source/cmGeneratorExpressionNode.cxx
  28. 1 2
      Source/cmGlobalBorlandMakefileGenerator.cxx
  29. 1 1
      Source/cmGlobalBorlandMakefileGenerator.h
  30. 2 2
      Source/cmGlobalGenerator.cxx
  31. 3 3
      Source/cmGlobalGenerator.h
  32. 1 2
      Source/cmGlobalGhsMultiGenerator.cxx
  33. 1 1
      Source/cmGlobalGhsMultiGenerator.h
  34. 1 2
      Source/cmGlobalJOMMakefileGenerator.cxx
  35. 1 1
      Source/cmGlobalJOMMakefileGenerator.h
  36. 1 2
      Source/cmGlobalNMakeMakefileGenerator.cxx
  37. 1 1
      Source/cmGlobalNMakeMakefileGenerator.h
  38. 1 1
      Source/cmGlobalNinjaGenerator.cxx
  39. 1 1
      Source/cmGlobalNinjaGenerator.h
  40. 1 1
      Source/cmGlobalUnixMakefileGenerator3.cxx
  41. 1 1
      Source/cmGlobalUnixMakefileGenerator3.h
  42. 1 2
      Source/cmGlobalVisualStudio10Generator.cxx
  43. 1 1
      Source/cmGlobalVisualStudio10Generator.h
  44. 1 1
      Source/cmGlobalVisualStudio7Generator.cxx
  45. 1 1
      Source/cmGlobalVisualStudio7Generator.h
  46. 1 2
      Source/cmGlobalWatcomWMakeGenerator.cxx
  47. 1 1
      Source/cmGlobalWatcomWMakeGenerator.h
  48. 1 1
      Source/cmGlobalXCodeGenerator.cxx
  49. 1 1
      Source/cmGlobalXCodeGenerator.h
  50. 3 4
      Source/cmInstallGetRuntimeDependenciesGenerator.cxx
  51. 4 4
      Source/cmJSONHelpers.h
  52. 3 3
      Source/cmList.cxx
  53. 1 1
      Source/cmList.h
  54. 1 1
      Source/cmOSXBundleGenerator.cxx
  55. 1 1
      Source/cmOSXBundleGenerator.h
  56. 3 3
      Source/cmPackageInfoReader.cxx
  57. 2 2
      Source/cmQtAutoGenInitializer.cxx
  58. 1 1
      Source/cmQtAutoGenInitializer.h
  59. 1 1
      Source/cmQtAutoGenerator.h
  60. 1 1
      Source/cmSetSourceFilesPropertiesCommand.cxx
  61. 1 1
      Source/cmStandardLevel.h
  62. 1 1
      Source/cmStandardLevelResolver.cxx
  63. 1 1
      Source/cmStandardLevelResolver.h
  64. 12 4
      Source/cmString.hxx
  65. 1 1
      Source/cmStringAlgorithms.cxx
  66. 1 1
      Source/cmStringAlgorithms.h
  67. 2 2
      Source/cmSystemTools.cxx
  68. 2 3
      Source/cmTarget.cxx
  69. 2 2
      Source/cmTarget.h
  70. 1 1
      Source/cmWindowsRegistry.cxx
  71. 1 2
      Source/cmXMLWriter.h
  72. 2 2
      Source/cmake.cxx
  73. 2 2
      Source/cmake.h
  74. 1 1
      Tests/CMakeLib/testCommon.h
  75. 3 6
      Tests/CMakeLib/testDebuggerAdapter.cxx
  76. 3 6
      Tests/CMakeLib/testDebuggerAdapterPipe.cxx

+ 0 - 1
.gitlab/ci/env_fedora42_clazy.sh

@@ -10,7 +10,6 @@ export CLAZY_CHECKS="level2\
 ,no-copyable-polymorphic\
 ,no-copyable-polymorphic\
 ,no-ctor-missing-parent-argument\
 ,no-ctor-missing-parent-argument\
 ,no-function-args-by-ref\
 ,no-function-args-by-ref\
-,no-function-args-by-value\
 ,no-missing-qobject-macro\
 ,no-missing-qobject-macro\
 ,no-non-pod-global-static\
 ,no-non-pod-global-static\
 ,no-old-style-connect\
 ,no-old-style-connect\

+ 0 - 12
Source/CTest/cmCTestResourceAllocator.cxx

@@ -72,15 +72,3 @@ bool cmCTestResourceAllocator::DeallocateResource(std::string const& name,
   resIt->second.Locked -= slots;
   resIt->second.Locked -= slots;
   return true;
   return true;
 }
 }
-
-bool cmCTestResourceAllocator::Resource::operator==(
-  Resource const& other) const
-{
-  return this->Total == other.Total && this->Locked == other.Locked;
-}
-
-bool cmCTestResourceAllocator::Resource::operator!=(
-  Resource const& other) const
-{
-  return !(*this == other);
-}

+ 9 - 2
Source/CTest/cmCTestResourceAllocator.h

@@ -17,8 +17,15 @@ public:
 
 
     unsigned int Free() const { return this->Total - this->Locked; }
     unsigned int Free() const { return this->Total - this->Locked; }
 
 
-    bool operator==(Resource const& other) const;
-    bool operator!=(Resource const& other) const;
+    friend bool operator==(Resource left, Resource right)
+    {
+      return left.Total == right.Total && left.Locked == right.Locked;
+    }
+
+    friend bool operator!=(Resource left, Resource right)
+    {
+      return !(left == right);
+    }
   };
   };
 
 
   void InitializeFromResourceSpec(cmCTestResourceSpec const& spec);
   void InitializeFromResourceSpec(cmCTestResourceSpec const& spec);

+ 1 - 1
Source/CTest/cmCTestTestHandler.cxx

@@ -530,7 +530,7 @@ bool cmCTestTestHandler::ProcessOptions()
 
 
 void cmCTestTestHandler::LogTestSummary(std::vector<std::string> const& passed,
 void cmCTestTestHandler::LogTestSummary(std::vector<std::string> const& passed,
                                         std::vector<std::string> const& failed,
                                         std::vector<std::string> const& failed,
-                                        cmDuration const& durationInSecs)
+                                        cmDuration durationInSecs)
 {
 {
   std::size_t total = passed.size() + failed.size();
   std::size_t total = passed.size() + failed.size();
 
 

+ 1 - 1
Source/CTest/cmCTestTestHandler.h

@@ -242,7 +242,7 @@ protected:
   bool ProcessOptions();
   bool ProcessOptions();
   void LogTestSummary(std::vector<std::string> const& passed,
   void LogTestSummary(std::vector<std::string> const& passed,
                       std::vector<std::string> const& failed,
                       std::vector<std::string> const& failed,
-                      cmDuration const& durationInSecs);
+                      cmDuration durationInSecs);
   void LogDisabledTests(std::vector<cmCTestTestResult> const& disabledTests);
   void LogDisabledTests(std::vector<cmCTestTestResult> const& disabledTests);
   void LogFailedTests(std::vector<std::string> const& failed,
   void LogFailedTests(std::vector<std::string> const& failed,
                       SetOfTests const& resultsSet);
                       SetOfTests const& resultsSet);

+ 6 - 10
Source/cmArgumentParser.cxx

@@ -14,11 +14,9 @@ namespace ArgumentParser {
 auto KeywordActionMap::Emplace(cm::string_view name, KeywordAction action)
 auto KeywordActionMap::Emplace(cm::string_view name, KeywordAction action)
   -> std::pair<iterator, bool>
   -> std::pair<iterator, bool>
 {
 {
-  auto const it =
-    std::lower_bound(this->begin(), this->end(), name,
-                     [](value_type const& elem, cm::string_view const& k) {
-                       return elem.first < k;
-                     });
+  auto const it = std::lower_bound(
+    this->begin(), this->end(), name,
+    [](value_type const& elem, cm::string_view k) { return elem.first < k; });
   return (it != this->end() && it->first == name)
   return (it != this->end() && it->first == name)
     ? std::make_pair(it, false)
     ? std::make_pair(it, false)
     : std::make_pair(this->emplace(it, name, std::move(action)), true);
     : std::make_pair(this->emplace(it, name, std::move(action)), true);
@@ -26,11 +24,9 @@ auto KeywordActionMap::Emplace(cm::string_view name, KeywordAction action)
 
 
 auto KeywordActionMap::Find(cm::string_view name) const -> const_iterator
 auto KeywordActionMap::Find(cm::string_view name) const -> const_iterator
 {
 {
-  auto const it =
-    std::lower_bound(this->begin(), this->end(), name,
-                     [](value_type const& elem, cm::string_view const& k) {
-                       return elem.first < k;
-                     });
+  auto const it = std::lower_bound(
+    this->begin(), this->end(), name,
+    [](value_type const& elem, cm::string_view k) { return elem.first < k; });
   return (it != this->end() && it->first == name) ? it : this->end();
   return (it != this->end() && it->first == name) ? it : this->end();
 }
 }
 
 

+ 0 - 2
Source/cmBuildOptions.h

@@ -35,8 +35,6 @@ public:
     , ResolveMode(resolveMode)
     , ResolveMode(resolveMode)
   {
   {
   }
   }
-  explicit cmBuildOptions(cmBuildOptions const&) noexcept = default;
-  cmBuildOptions& operator=(cmBuildOptions const&) noexcept = default;
 
 
   bool Clean = false;
   bool Clean = false;
   bool Fast = false;
   bool Fast = false;

+ 5 - 5
Source/cmComputeLinkDepends.cxx

@@ -779,7 +779,7 @@ cmComputeLinkDepends::AllocateLinkEntry(cmLinkItem const& item)
 }
 }
 
 
 std::pair<size_t, bool> cmComputeLinkDepends::AddLinkEntry(
 std::pair<size_t, bool> cmComputeLinkDepends::AddLinkEntry(
-  cmLinkItem const& item, cm::optional<size_t> const& groupIndex)
+  cmLinkItem const& item, cm::optional<size_t> groupIndex)
 {
 {
   // Allocate a spot for the item entry.
   // Allocate a spot for the item entry.
   auto lei = this->AllocateLinkEntry(item);
   auto lei = this->AllocateLinkEntry(item);
@@ -950,7 +950,7 @@ void cmComputeLinkDepends::HandleSharedDependency(SharedDepEntry const& dep)
 }
 }
 
 
 void cmComputeLinkDepends::AddVarLinkEntries(
 void cmComputeLinkDepends::AddVarLinkEntries(
-  cm::optional<size_t> const& depender_index, char const* value)
+  cm::optional<size_t> depender_index, char const* value)
 {
 {
   // This is called to add the dependencies named by
   // This is called to add the dependencies named by
   // <item>_LIB_DEPENDS.  The variable contains a semicolon-separated
   // <item>_LIB_DEPENDS.  The variable contains a semicolon-separated
@@ -1020,8 +1020,8 @@ void cmComputeLinkDepends::AddDirectLinkEntries()
 }
 }
 
 
 template <typename T>
 template <typename T>
-void cmComputeLinkDepends::AddLinkEntries(
-  cm::optional<size_t> const& depender_index, std::vector<T> const& libs)
+void cmComputeLinkDepends::AddLinkEntries(cm::optional<size_t> depender_index,
+                                          std::vector<T> const& libs)
 {
 {
   // Track inferred dependency sets implied by this list.
   // Track inferred dependency sets implied by this list.
   std::map<size_t, DependSet> dependSets;
   std::map<size_t, DependSet> dependSets;
@@ -1305,7 +1305,7 @@ void cmComputeLinkDepends::AddLinkObjects(std::vector<cmLinkItem> const& objs)
 }
 }
 
 
 cmLinkItem cmComputeLinkDepends::ResolveLinkItem(
 cmLinkItem cmComputeLinkDepends::ResolveLinkItem(
-  cm::optional<size_t> const& depender_index, std::string const& name)
+  cm::optional<size_t> depender_index, std::string const& name)
 {
 {
   // Look for a target in the scope of the depender.
   // Look for a target in the scope of the depender.
   cmGeneratorTarget const* from = this->Target;
   cmGeneratorTarget const* from = this->Target;

+ 4 - 4
Source/cmComputeLinkDepends.h

@@ -106,16 +106,16 @@ private:
   std::pair<std::map<cmLinkItem, size_t>::iterator, bool> AllocateLinkEntry(
   std::pair<std::map<cmLinkItem, size_t>::iterator, bool> AllocateLinkEntry(
     cmLinkItem const& item);
     cmLinkItem const& item);
   std::pair<size_t, bool> AddLinkEntry(cmLinkItem const& item,
   std::pair<size_t, bool> AddLinkEntry(cmLinkItem const& item,
-                                       cm::optional<size_t> const& groupIndex);
+                                       cm::optional<size_t> groupIndex);
   void AddLinkObject(cmLinkItem const& item);
   void AddLinkObject(cmLinkItem const& item);
-  void AddVarLinkEntries(cm::optional<size_t> const& depender_index,
+  void AddVarLinkEntries(cm::optional<size_t> depender_index,
                          char const* value);
                          char const* value);
   void AddDirectLinkEntries();
   void AddDirectLinkEntries();
   template <typename T>
   template <typename T>
-  void AddLinkEntries(cm::optional<size_t> const& depender_index,
+  void AddLinkEntries(cm::optional<size_t> depender_index,
                       std::vector<T> const& libs);
                       std::vector<T> const& libs);
   void AddLinkObjects(std::vector<cmLinkItem> const& objs);
   void AddLinkObjects(std::vector<cmLinkItem> const& objs);
-  cmLinkItem ResolveLinkItem(cm::optional<size_t> const& depender_index,
+  cmLinkItem ResolveLinkItem(cm::optional<size_t> depender_index,
                              std::string const& name);
                              std::string const& name);
 
 
   // One entry for each unique item.
   // One entry for each unique item.

+ 1 - 1
Source/cmCoreTryCompile.cxx

@@ -236,7 +236,7 @@ ArgumentParser::Continue cmCoreTryCompile::Arguments::SetSourceType(
 }
 }
 
 
 Arguments cmCoreTryCompile::ParseArgs(
 Arguments cmCoreTryCompile::ParseArgs(
-  cmRange<std::vector<std::string>::const_iterator> const& args,
+  cmRange<std::vector<std::string>::const_iterator> args,
   cmArgumentParser<Arguments> const& parser,
   cmArgumentParser<Arguments> const& parser,
   std::vector<std::string>& unparsedArguments)
   std::vector<std::string>& unparsedArguments)
 {
 {

+ 3 - 4
Source/cmCoreTryCompile.h

@@ -161,8 +161,7 @@ private:
   std::string WriteSource(std::string const& name, std::string const& content,
   std::string WriteSource(std::string const& name, std::string const& content,
                           char const* command) const;
                           char const* command) const;
 
 
-  Arguments ParseArgs(
-    cmRange<std::vector<std::string>::const_iterator> const& args,
-    cmArgumentParser<Arguments> const& parser,
-    std::vector<std::string>& unparsedArguments);
+  Arguments ParseArgs(cmRange<std::vector<std::string>::const_iterator> args,
+                      cmArgumentParser<Arguments> const& parser,
+                      std::vector<std::string>& unparsedArguments);
 };
 };

+ 5 - 8
Source/cmDebuggerAdapter.cxx

@@ -164,8 +164,7 @@ cmDebuggerAdapter::cmDebuggerAdapter(
     });
     });
 
 
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Threads
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Threads
-  Session->registerHandler([this](dap::ThreadsRequest const& req) {
-    (void)req;
+  Session->registerHandler([this](dap::ThreadsRequest /*unused*/) {
     std::unique_lock<std::mutex> lock(Mutex);
     std::unique_lock<std::mutex> lock(Mutex);
     dap::ThreadsResponse response;
     dap::ThreadsResponse response;
 
 
@@ -196,7 +195,7 @@ cmDebuggerAdapter::cmDebuggerAdapter(
   });
   });
 
 
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Scopes
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Scopes
-  Session->registerHandler([this](dap::ScopesRequest const& request)
+  Session->registerHandler([this](dap::ScopesRequest request)
                              -> dap::ResponseOrError<dap::ScopesResponse> {
                              -> dap::ResponseOrError<dap::ScopesResponse> {
     std::unique_lock<std::mutex> lock(Mutex);
     std::unique_lock<std::mutex> lock(Mutex);
     return DefaultThread->GetScopesResponse(request.frameId,
     return DefaultThread->GetScopesResponse(request.frameId,
@@ -210,8 +209,7 @@ cmDebuggerAdapter::cmDebuggerAdapter(
   });
   });
 
 
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Pause
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Pause
-  Session->registerHandler([this](dap::PauseRequest const& req) {
-    (void)req;
+  Session->registerHandler([this](dap::PauseRequest /*unused*/) {
     PauseRequest.store(true);
     PauseRequest.store(true);
     return dap::PauseResponse();
     return dap::PauseResponse();
   });
   });
@@ -286,8 +284,7 @@ cmDebuggerAdapter::cmDebuggerAdapter(
   // The ConfigurationDone request is made by the client once all configuration
   // The ConfigurationDone request is made by the client once all configuration
   // requests have been made.
   // requests have been made.
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_ConfigurationDone
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_ConfigurationDone
-  Session->registerHandler([this](dap::ConfigurationDoneRequest const& req) {
-    (void)req;
+  Session->registerHandler([this](dap::ConfigurationDoneRequest /*unused*/) {
     ConfigurationDoneEvent->Fire();
     ConfigurationDoneEvent->Fire();
     return dap::ConfigurationDoneResponse();
     return dap::ConfigurationDoneResponse();
   });
   });
@@ -397,7 +394,7 @@ void cmDebuggerAdapter::OnBeginFunctionCall(cmMakefile* mf,
     dap::array<dap::integer> hitBreakpoints;
     dap::array<dap::integer> hitBreakpoints;
     hitBreakpoints.resize(hits.size());
     hitBreakpoints.resize(hits.size());
     std::transform(hits.begin(), hits.end(), hitBreakpoints.begin(),
     std::transform(hits.begin(), hits.end(), hitBreakpoints.begin(),
-                   [&](int64_t const& id) { return dap::integer(id); });
+                   [&](int64_t id) { return dap::integer(id); });
     stoppedEvent.reason = "breakpoint";
     stoppedEvent.reason = "breakpoint";
     stoppedEvent.hitBreakpointIds = hitBreakpoints;
     stoppedEvent.hitBreakpointIds = hitBreakpoints;
   }
   }

+ 5 - 6
Source/cmDebuggerBreakpointManager.cxx

@@ -33,7 +33,7 @@ int64_t cmDebuggerBreakpointManager::FindFunctionStartLine(
   auto location =
   auto location =
     find_if(ListFileFunctionLines[sourcePath].begin(),
     find_if(ListFileFunctionLines[sourcePath].begin(),
             ListFileFunctionLines[sourcePath].end(),
             ListFileFunctionLines[sourcePath].end(),
-            [=](cmDebuggerFunctionLocation const& loc) {
+            [=](cmDebuggerFunctionLocation loc) {
               return loc.StartLine <= line && loc.EndLine >= line;
               return loc.StartLine <= line && loc.EndLine >= line;
             });
             });
 
 
@@ -47,11 +47,10 @@ int64_t cmDebuggerBreakpointManager::FindFunctionStartLine(
 int64_t cmDebuggerBreakpointManager::CalibrateBreakpointLine(
 int64_t cmDebuggerBreakpointManager::CalibrateBreakpointLine(
   std::string const& sourcePath, int64_t line)
   std::string const& sourcePath, int64_t line)
 {
 {
-  auto location = find_if(ListFileFunctionLines[sourcePath].begin(),
-                          ListFileFunctionLines[sourcePath].end(),
-                          [=](cmDebuggerFunctionLocation const& loc) {
-                            return loc.StartLine >= line;
-                          });
+  auto location = find_if(
+    ListFileFunctionLines[sourcePath].begin(),
+    ListFileFunctionLines[sourcePath].end(),
+    [=](cmDebuggerFunctionLocation loc) { return loc.StartLine >= line; });
 
 
   if (location != ListFileFunctionLines[sourcePath].end()) {
   if (location != ListFileFunctionLines[sourcePath].end()) {
     return location->StartLine;
     return location->StartLine;

+ 1 - 2
Source/cmDebuggerExceptionManager.cxx

@@ -25,8 +25,7 @@ cmDebuggerExceptionManager::cmDebuggerExceptionManager(
     });
     });
 
 
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_ExceptionInfo
   // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_ExceptionInfo
-  DapSession->registerHandler([&](dap::ExceptionInfoRequest const& request) {
-    (void)request;
+  DapSession->registerHandler([&](dap::ExceptionInfoRequest /*unused*/) {
     return HandleExceptionInfoRequest();
     return HandleExceptionInfoRequest();
   });
   });
 
 

+ 1 - 2
Source/cmDebuggerVariablesHelper.cxx

@@ -83,8 +83,7 @@ std::shared_ptr<cmDebuggerVariables> cmDebuggerVariablesHelper::CreateIfAny(
 
 
 std::shared_ptr<cmDebuggerVariables> cmDebuggerVariablesHelper::CreateIfAny(
 std::shared_ptr<cmDebuggerVariables> cmDebuggerVariablesHelper::CreateIfAny(
   std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
   std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
-  std::string const& name, bool supportsVariableType,
-  cmBTStringRange const& entries)
+  std::string const& name, bool supportsVariableType, cmBTStringRange entries)
 {
 {
   if (entries.empty()) {
   if (entries.empty()) {
     return {};
     return {};

+ 1 - 1
Source/cmDebuggerVariablesHelper.h

@@ -48,7 +48,7 @@ public:
   static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
   static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
     std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
     std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
     std::string const& name, bool supportsVariableType,
     std::string const& name, bool supportsVariableType,
-    cmBTStringRange const& entries);
+    cmBTStringRange entries);
 
 
   static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
   static std::shared_ptr<cmDebuggerVariables> CreateIfAny(
     std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,
     std::shared_ptr<cmDebuggerVariablesManager> const& variablesManager,

+ 3 - 3
Source/cmDuration.cxx

@@ -4,7 +4,7 @@
 #include "cmDuration.h"
 #include "cmDuration.h"
 
 
 template <typename T>
 template <typename T>
-T cmDurationTo(cmDuration const& duration)
+T cmDurationTo(cmDuration duration)
 {
 {
   /* This works because the comparison operators for duration rely on
   /* This works because the comparison operators for duration rely on
    * std::common_type.
    * std::common_type.
@@ -23,5 +23,5 @@ T cmDurationTo(cmDuration const& duration)
     .count();
     .count();
 }
 }
 
 
-template int cmDurationTo<int>(cmDuration const&);
-template unsigned int cmDurationTo<unsigned int>(cmDuration const&);
+template int cmDurationTo<int>(cmDuration);
+template unsigned int cmDurationTo<unsigned int>(cmDuration);

+ 3 - 3
Source/cmDuration.h

@@ -16,9 +16,9 @@ using cmDuration = std::chrono::duration<double, std::ratio<1>>;
  * the permissible valid values for T.
  * the permissible valid values for T.
  */
  */
 template <typename T>
 template <typename T>
-T cmDurationTo(cmDuration const& duration);
+T cmDurationTo(cmDuration duration);
 
 
 #ifndef CMDURATION_CPP
 #ifndef CMDURATION_CPP
-extern template int cmDurationTo<int>(cmDuration const&);
-extern template unsigned int cmDurationTo<unsigned int>(cmDuration const&);
+extern template int cmDurationTo<int>(cmDuration);
+extern template unsigned int cmDurationTo<unsigned int>(cmDuration);
 #endif
 #endif

+ 1 - 1
Source/cmExportFileGenerator.cxx

@@ -215,7 +215,7 @@ void cmExportFileGenerator::AddImportPrefix(std::string& exportDirs) const
   cmGeneratorExpression::Split(exportDirs, entries);
   cmGeneratorExpression::Split(exportDirs, entries);
   exportDirs.clear();
   exportDirs.clear();
   char const* sep = "";
   char const* sep = "";
-  cm::string_view const& prefixWithSlash = this->GetImportPrefixWithSlash();
+  cm::string_view const prefixWithSlash = this->GetImportPrefixWithSlash();
   for (std::string const& e : entries) {
   for (std::string const& e : entries) {
     exportDirs += sep;
     exportDirs += sep;
     sep = ";";
     sep = ";";

+ 1 - 1
Source/cmExportInstallFileGenerator.h

@@ -75,7 +75,7 @@ protected:
 
 
   std::string GetInstallPrefix() const
   std::string GetInstallPrefix() const
   {
   {
-    cm::string_view const& prefixWithSlash = this->GetImportPrefixWithSlash();
+    cm::string_view const prefixWithSlash = this->GetImportPrefixWithSlash();
     return std::string(prefixWithSlash.data(), prefixWithSlash.length() - 1);
     return std::string(prefixWithSlash.data(), prefixWithSlash.length() - 1);
   }
   }
   virtual char GetConfigFileNameSeparator() const = 0;
   virtual char GetConfigFileNameSeparator() const = 0;

+ 40 - 12
Source/cmFileAPI.cxx

@@ -29,6 +29,20 @@
 #include "cmTimestamp.h"
 #include "cmTimestamp.h"
 #include "cmake.h"
 #include "cmake.h"
 
 
+#if defined(__clang__) && defined(__has_warning)
+#  if __has_warning("-Wrange-loop-analysis")
+#    if defined(__apple_build_version__)
+#      if __apple_build_version__ < 13000000
+#        define CM_CLANG_SUPPRESS_WARN_RANGE_LOOP_ANALYSIS
+#      endif
+#    else
+#      if __clang_major__ < 11
+#        define CM_CLANG_SUPPRESS_WARN_RANGE_LOOP_ANALYSIS
+#      endif
+#    endif
+#  endif
+#endif
+
 cmFileAPI::cmFileAPI(cmake* cm)
 cmFileAPI::cmFileAPI(cmake* cm)
   : CMakeInstance(cm)
   : CMakeInstance(cm)
 {
 {
@@ -89,7 +103,14 @@ std::vector<unsigned int> cmFileAPI::GetConfigureLogVersions()
 {
 {
   std::vector<unsigned int> versions;
   std::vector<unsigned int> versions;
   auto getConfigureLogVersions = [&versions](Query const& q) {
   auto getConfigureLogVersions = [&versions](Query const& q) {
-    for (Object const& o : q.Known) {
+#ifdef CM_CLANG_SUPPRESS_WARN_RANGE_LOOP_ANALYSIS
+#  pragma clang diagnostic push
+#  pragma clang diagnostic ignored "-Wrange-loop-analysis"
+#endif
+    for (Object const o : q.Known) {
+#ifdef CM_CLANG_SUPPRESS_WARN_RANGE_LOOP_ANALYSIS
+#  pragma clang diagnostic pop
+#endif
       if (o.Kind == ObjectKind::ConfigureLog) {
       if (o.Kind == ObjectKind::ConfigureLog) {
         versions.emplace_back(o.Version);
         versions.emplace_back(o.Version);
       }
       }
@@ -446,7 +467,14 @@ Json::Value cmFileAPI::BuildCMake()
 Json::Value cmFileAPI::BuildReply(Query const& q)
 Json::Value cmFileAPI::BuildReply(Query const& q)
 {
 {
   Json::Value reply = Json::objectValue;
   Json::Value reply = Json::objectValue;
-  for (Object const& o : q.Known) {
+#ifdef CM_CLANG_SUPPRESS_WARN_RANGE_LOOP_ANALYSIS
+#  pragma clang diagnostic push
+#  pragma clang diagnostic ignored "-Wrange-loop-analysis"
+#endif
+  for (Object const o : q.Known) {
+#ifdef CM_CLANG_SUPPRESS_WARN_RANGE_LOOP_ANALYSIS
+#  pragma clang diagnostic pop
+#endif
     std::string const& name = ObjectName(o);
     std::string const& name = ObjectName(o);
     reply[name] = this->BuildReplyEntry(o);
     reply[name] = this->BuildReplyEntry(o);
   }
   }
@@ -457,7 +485,7 @@ Json::Value cmFileAPI::BuildReply(Query const& q)
   return reply;
   return reply;
 }
 }
 
 
-Json::Value cmFileAPI::BuildReplyEntry(Object const& object)
+Json::Value cmFileAPI::BuildReplyEntry(Object object)
 {
 {
   if (this->ReplyIndexFor != IndexFor::Success) {
   if (this->ReplyIndexFor != IndexFor::Success) {
     switch (object.Kind) {
     switch (object.Kind) {
@@ -481,7 +509,7 @@ Json::Value cmFileAPI::BuildReplyError(std::string const& error)
   return e;
   return e;
 }
 }
 
 
-Json::Value const& cmFileAPI::AddReplyIndexObject(Object const& o)
+Json::Value const& cmFileAPI::AddReplyIndexObject(Object o)
 {
 {
   Json::Value& indexEntry = this->ReplyIndexObjects[o];
   Json::Value& indexEntry = this->ReplyIndexObjects[o];
   if (!indexEntry.isNull()) {
   if (!indexEntry.isNull()) {
@@ -515,7 +543,7 @@ char const* cmFileAPI::ObjectKindName(ObjectKind kind)
   return objectKindNames[static_cast<size_t>(kind)];
   return objectKindNames[static_cast<size_t>(kind)];
 }
 }
 
 
-std::string cmFileAPI::ObjectName(Object const& o)
+std::string cmFileAPI::ObjectName(Object o)
 {
 {
   std::string name = cmStrCat(ObjectKindName(o.Kind), "-v", o.Version);
   std::string name = cmStrCat(ObjectKindName(o.Kind), "-v", o.Version);
   return name;
   return name;
@@ -529,7 +557,7 @@ Json::Value cmFileAPI::BuildVersion(unsigned int major, unsigned int minor)
   return version;
   return version;
 }
 }
 
 
-Json::Value cmFileAPI::BuildObject(Object const& object)
+Json::Value cmFileAPI::BuildObject(Object object)
 {
 {
   Json::Value value;
   Json::Value value;
 
 
@@ -809,7 +837,7 @@ void cmFileAPI::BuildClientRequestCodeModel(
   }
   }
 }
 }
 
 
-Json::Value cmFileAPI::BuildCodeModel(Object const& object)
+Json::Value cmFileAPI::BuildCodeModel(Object object)
 {
 {
   assert(object.Version == 2);
   assert(object.Version == 2);
   Json::Value codemodel =
   Json::Value codemodel =
@@ -846,7 +874,7 @@ void cmFileAPI::BuildClientRequestConfigureLog(
   }
   }
 }
 }
 
 
-Json::Value cmFileAPI::BuildConfigureLog(Object const& object)
+Json::Value cmFileAPI::BuildConfigureLog(Object object)
 {
 {
   Json::Value configureLog = cmFileAPIConfigureLogDump(*this, object.Version);
   Json::Value configureLog = cmFileAPIConfigureLogDump(*this, object.Version);
   configureLog["kind"] = this->ObjectKindName(object.Kind);
   configureLog["kind"] = this->ObjectKindName(object.Kind);
@@ -880,7 +908,7 @@ void cmFileAPI::BuildClientRequestCache(
   }
   }
 }
 }
 
 
-Json::Value cmFileAPI::BuildCache(Object const& object)
+Json::Value cmFileAPI::BuildCache(Object object)
 {
 {
   Json::Value cache = cmFileAPICacheDump(*this, object.Version);
   Json::Value cache = cmFileAPICacheDump(*this, object.Version);
   cache["kind"] = this->ObjectKindName(object.Kind);
   cache["kind"] = this->ObjectKindName(object.Kind);
@@ -914,7 +942,7 @@ void cmFileAPI::BuildClientRequestCMakeFiles(
   }
   }
 }
 }
 
 
-Json::Value cmFileAPI::BuildCMakeFiles(Object const& object)
+Json::Value cmFileAPI::BuildCMakeFiles(Object object)
 {
 {
   Json::Value cmakeFiles = cmFileAPICMakeFilesDump(*this, object.Version);
   Json::Value cmakeFiles = cmFileAPICMakeFilesDump(*this, object.Version);
   cmakeFiles["kind"] = this->ObjectKindName(object.Kind);
   cmakeFiles["kind"] = this->ObjectKindName(object.Kind);
@@ -948,7 +976,7 @@ void cmFileAPI::BuildClientRequestToolchains(
   }
   }
 }
 }
 
 
-Json::Value cmFileAPI::BuildToolchains(Object const& object)
+Json::Value cmFileAPI::BuildToolchains(Object object)
 {
 {
   Json::Value toolchains = cmFileAPIToolchainsDump(*this, object.Version);
   Json::Value toolchains = cmFileAPIToolchainsDump(*this, object.Version);
   toolchains["kind"] = this->ObjectKindName(object.Kind);
   toolchains["kind"] = this->ObjectKindName(object.Kind);
@@ -984,7 +1012,7 @@ void cmFileAPI::BuildClientRequestInternalTest(
   }
   }
 }
 }
 
 
-Json::Value cmFileAPI::BuildInternalTest(Object const& object)
+Json::Value cmFileAPI::BuildInternalTest(Object object)
 {
 {
   Json::Value test = Json::objectValue;
   Json::Value test = Json::objectValue;
   test["kind"] = this->ObjectKindName(object.Kind);
   test["kind"] = this->ObjectKindName(object.Kind);

+ 13 - 16
Source/cmFileAPI.h

@@ -87,21 +87,18 @@ private:
   {
   {
     ObjectKind Kind;
     ObjectKind Kind;
     unsigned int Version = 0;
     unsigned int Version = 0;
-    friend bool operator<(Object const& l, Object const& r)
+    friend bool operator<(Object l, Object r)
     {
     {
       if (l.Kind != r.Kind) {
       if (l.Kind != r.Kind) {
         return l.Kind < r.Kind;
         return l.Kind < r.Kind;
       }
       }
       return l.Version < r.Version;
       return l.Version < r.Version;
     }
     }
-    friend bool operator==(Object const& l, Object const& r)
+    friend bool operator==(Object l, Object r)
     {
     {
       return l.Kind == r.Kind && l.Version == r.Version;
       return l.Kind == r.Kind && l.Version == r.Version;
     }
     }
-    friend bool operator!=(Object const& l, Object const& r)
-    {
-      return !(l == r);
-    }
+    friend bool operator!=(Object l, Object r) { return !(l == r); }
   };
   };
 
 
   /** Represent content of a query directory.  */
   /** Represent content of a query directory.  */
@@ -192,14 +189,14 @@ private:
   Json::Value BuildReplyIndex();
   Json::Value BuildReplyIndex();
   Json::Value BuildCMake();
   Json::Value BuildCMake();
   Json::Value BuildReply(Query const& q);
   Json::Value BuildReply(Query const& q);
-  Json::Value BuildReplyEntry(Object const& object);
+  Json::Value BuildReplyEntry(Object object);
   static Json::Value BuildReplyError(std::string const& error);
   static Json::Value BuildReplyError(std::string const& error);
-  Json::Value const& AddReplyIndexObject(Object const& o);
+  Json::Value const& AddReplyIndexObject(Object o);
 
 
   static char const* ObjectKindName(ObjectKind kind);
   static char const* ObjectKindName(ObjectKind kind);
-  static std::string ObjectName(Object const& o);
+  static std::string ObjectName(Object o);
 
 
-  Json::Value BuildObject(Object const& object);
+  Json::Value BuildObject(Object object);
 
 
   ClientRequests BuildClientRequests(Json::Value const& requests);
   ClientRequests BuildClientRequests(Json::Value const& requests);
   ClientRequest BuildClientRequest(Json::Value const& request);
   ClientRequest BuildClientRequest(Json::Value const& request);
@@ -223,25 +220,25 @@ private:
 
 
   void BuildClientRequestCodeModel(
   void BuildClientRequestCodeModel(
     ClientRequest& r, std::vector<RequestVersion> const& versions);
     ClientRequest& r, std::vector<RequestVersion> const& versions);
-  Json::Value BuildCodeModel(Object const& object);
+  Json::Value BuildCodeModel(Object object);
 
 
   void BuildClientRequestConfigureLog(
   void BuildClientRequestConfigureLog(
     ClientRequest& r, std::vector<RequestVersion> const& versions);
     ClientRequest& r, std::vector<RequestVersion> const& versions);
-  Json::Value BuildConfigureLog(Object const& object);
+  Json::Value BuildConfigureLog(Object object);
 
 
   void BuildClientRequestCache(ClientRequest& r,
   void BuildClientRequestCache(ClientRequest& r,
                                std::vector<RequestVersion> const& versions);
                                std::vector<RequestVersion> const& versions);
-  Json::Value BuildCache(Object const& object);
+  Json::Value BuildCache(Object object);
 
 
   void BuildClientRequestCMakeFiles(
   void BuildClientRequestCMakeFiles(
     ClientRequest& r, std::vector<RequestVersion> const& versions);
     ClientRequest& r, std::vector<RequestVersion> const& versions);
-  Json::Value BuildCMakeFiles(Object const& object);
+  Json::Value BuildCMakeFiles(Object object);
 
 
   void BuildClientRequestToolchains(
   void BuildClientRequestToolchains(
     ClientRequest& r, std::vector<RequestVersion> const& versions);
     ClientRequest& r, std::vector<RequestVersion> const& versions);
-  Json::Value BuildToolchains(Object const& object);
+  Json::Value BuildToolchains(Object object);
 
 
   void BuildClientRequestInternalTest(
   void BuildClientRequestInternalTest(
     ClientRequest& r, std::vector<RequestVersion> const& versions);
     ClientRequest& r, std::vector<RequestVersion> const& versions);
-  Json::Value BuildInternalTest(Object const& object);
+  Json::Value BuildInternalTest(Object object);
 };
 };

+ 3 - 4
Source/cmFileCommand.cxx

@@ -3848,7 +3848,7 @@ bool ValidateAndConvertPermissions(
   return true;
   return true;
 }
 }
 
 
-bool SetPermissions(std::string const& filename, mode_t const& perms,
+bool SetPermissions(std::string const& filename, mode_t perms,
                     cmExecutionStatus& status)
                     cmExecutionStatus& status)
 {
 {
   if (!cmSystemTools::SetPermissions(filename, perms)) {
   if (!cmSystemTools::SetPermissions(filename, perms)) {
@@ -3953,8 +3953,7 @@ bool HandleChmodCommandImpl(std::vector<std::string> const& args, bool recurse,
 
 
     if (cmSystemTools::FileExists(i, true)) {
     if (cmSystemTools::FileExists(i, true)) {
       bool success = true;
       bool success = true;
-      mode_t const& filePermissions =
-        parsedArgs.FilePermissions ? fperms : perms;
+      mode_t filePermissions = parsedArgs.FilePermissions ? fperms : perms;
       if (filePermissions) {
       if (filePermissions) {
         success = SetPermissions(i, filePermissions, status);
         success = SetPermissions(i, filePermissions, status);
       }
       }
@@ -3965,7 +3964,7 @@ bool HandleChmodCommandImpl(std::vector<std::string> const& args, bool recurse,
 
 
     else if (cmSystemTools::FileIsDirectory(i)) {
     else if (cmSystemTools::FileIsDirectory(i)) {
       bool success = true;
       bool success = true;
-      mode_t const& directoryPermissions =
+      mode_t directoryPermissions =
         parsedArgs.DirectoryPermissions ? dperms : perms;
         parsedArgs.DirectoryPermissions ? dperms : perms;
       if (directoryPermissions) {
       if (directoryPermissions) {
         success = SetPermissions(i, directoryPermissions, status);
         success = SetPermissions(i, directoryPermissions, status);

+ 10 - 20
Source/cmFileTime.h

@@ -22,10 +22,6 @@ public:
   // unit time is 100 nanosecond
   // unit time is 100 nanosecond
   static constexpr TimeType UtPerS = 10000000;
   static constexpr TimeType UtPerS = 10000000;
 #endif
 #endif
-  cmFileTime() = default;
-  ~cmFileTime() = default;
-  cmFileTime(cmFileTime const&) = default;
-  cmFileTime& operator=(cmFileTime const&) = default;
 
 
   /**
   /**
    * @brief Loads the file time of fileName from the file system
    * @brief Loads the file time of fileName from the file system
@@ -36,34 +32,28 @@ public:
   /**
   /**
    * @brief Return true if this is older than ftm
    * @brief Return true if this is older than ftm
    */
    */
-  bool Older(cmFileTime const& ftm) const
-  {
-    return (this->Time - ftm.Time) < 0;
-  }
+  bool Older(cmFileTime ftm) const { return (this->Time - ftm.Time) < 0; }
 
 
   /**
   /**
    * @brief Return true if this is newer than ftm
    * @brief Return true if this is newer than ftm
    */
    */
-  bool Newer(cmFileTime const& ftm) const
-  {
-    return (ftm.Time - this->Time) < 0;
-  }
+  bool Newer(cmFileTime ftm) const { return (ftm.Time - this->Time) < 0; }
 
 
   /**
   /**
    * @brief Return true if this is the same as ftm
    * @brief Return true if this is the same as ftm
    */
    */
-  bool Equal(cmFileTime const& ftm) const { return this->Time == ftm.Time; }
+  bool Equal(cmFileTime ftm) const { return this->Time == ftm.Time; }
 
 
   /**
   /**
    * @brief Return true if this is not the same as ftm
    * @brief Return true if this is not the same as ftm
    */
    */
-  bool Differ(cmFileTime const& ftm) const { return this->Time != ftm.Time; }
+  bool Differ(cmFileTime ftm) const { return this->Time != ftm.Time; }
 
 
   /**
   /**
    * @brief Compare file modification times.
    * @brief Compare file modification times.
    * @return -1, 0, +1 for this older, same, or newer than ftm.
    * @return -1, 0, +1 for this older, same, or newer than ftm.
    */
    */
-  int Compare(cmFileTime const& ftm) const
+  int Compare(cmFileTime ftm) const
   {
   {
     TimeType const diff = this->Time - ftm.Time;
     TimeType const diff = this->Time - ftm.Time;
     if (diff == 0) {
     if (diff == 0) {
@@ -77,7 +67,7 @@ public:
   /**
   /**
    * @brief Return true if this is at least a second older than ftm
    * @brief Return true if this is at least a second older than ftm
    */
    */
-  bool OlderS(cmFileTime const& ftm) const
+  bool OlderS(cmFileTime ftm) const
   {
   {
     return (ftm.Time - this->Time) >= cmFileTime::UtPerS;
     return (ftm.Time - this->Time) >= cmFileTime::UtPerS;
   }
   }
@@ -85,7 +75,7 @@ public:
   /**
   /**
    * @brief Return true if this is at least a second newer than ftm
    * @brief Return true if this is at least a second newer than ftm
    */
    */
-  bool NewerS(cmFileTime const& ftm) const
+  bool NewerS(cmFileTime ftm) const
   {
   {
     return (this->Time - ftm.Time) >= cmFileTime::UtPerS;
     return (this->Time - ftm.Time) >= cmFileTime::UtPerS;
   }
   }
@@ -93,7 +83,7 @@ public:
   /**
   /**
    * @brief Return true if this is within the same second as ftm
    * @brief Return true if this is within the same second as ftm
    */
    */
-  bool EqualS(cmFileTime const& ftm) const
+  bool EqualS(cmFileTime ftm) const
   {
   {
     TimeType diff = this->Time - ftm.Time;
     TimeType diff = this->Time - ftm.Time;
     if (diff < 0) {
     if (diff < 0) {
@@ -105,7 +95,7 @@ public:
   /**
   /**
    * @brief Return true if this is older or newer than ftm by at least a second
    * @brief Return true if this is older or newer than ftm by at least a second
    */
    */
-  bool DifferS(cmFileTime const& ftm) const
+  bool DifferS(cmFileTime ftm) const
   {
   {
     TimeType diff = this->Time - ftm.Time;
     TimeType diff = this->Time - ftm.Time;
     if (diff < 0) {
     if (diff < 0) {
@@ -119,7 +109,7 @@ public:
    * @return -1: this at least a second older, 0: this within the same second
    * @return -1: this at least a second older, 0: this within the same second
    *         as ftm, +1: this at least a second newer than ftm.
    *         as ftm, +1: this at least a second newer than ftm.
    */
    */
-  int CompareS(cmFileTime const& ftm) const
+  int CompareS(cmFileTime ftm) const
   {
   {
     TimeType const diff = this->Time - ftm.Time;
     TimeType const diff = this->Time - ftm.Time;
     if (diff <= -cmFileTime::UtPerS) {
     if (diff <= -cmFileTime::UtPerS) {

+ 2 - 3
Source/cmGeneratorExpression.cxx

@@ -214,7 +214,7 @@ static std::string stripAllGeneratorExpressions(std::string const& input)
 }
 }
 
 
 static void prefixItems(std::string const& content, std::string& result,
 static void prefixItems(std::string const& content, std::string& result,
-                        cm::string_view const& prefix)
+                        cm::string_view prefix)
 {
 {
   std::vector<std::string> entries;
   std::vector<std::string> entries;
   cmGeneratorExpression::Split(content, entries);
   cmGeneratorExpression::Split(content, entries);
@@ -401,8 +401,7 @@ std::string cmGeneratorExpression::Collect(
   return extractAllGeneratorExpressions(input, &collected);
   return extractAllGeneratorExpressions(input, &collected);
 }
 }
 
 
-cm::string_view::size_type cmGeneratorExpression::Find(
-  cm::string_view const& input)
+cm::string_view::size_type cmGeneratorExpression::Find(cm::string_view input)
 {
 {
   cm::string_view::size_type const openpos = input.find("$<");
   cm::string_view::size_type const openpos = input.find("$<");
   if (openpos != cm::string_view::npos &&
   if (openpos != cm::string_view::npos &&

+ 1 - 1
Source/cmGeneratorExpression.h

@@ -70,7 +70,7 @@ public:
   static void Split(std::string const& input,
   static void Split(std::string const& input,
                     std::vector<std::string>& output);
                     std::vector<std::string>& output);
 
 
-  static cm::string_view::size_type Find(cm::string_view const& input);
+  static cm::string_view::size_type Find(cm::string_view input);
 
 
   static bool IsValidTargetName(std::string const& input);
   static bool IsValidTargetName(std::string const& input);
 
 

+ 3 - 3
Source/cmGeneratorExpressionNode.cxx

@@ -702,7 +702,7 @@ bool CheckPathParametersEx(cmGeneratorExpressionContext* ctx,
 }
 }
 bool CheckPathParameters(cmGeneratorExpressionContext* ctx,
 bool CheckPathParameters(cmGeneratorExpressionContext* ctx,
                          GeneratorExpressionContent const* cnt,
                          GeneratorExpressionContent const* cnt,
-                         cm::string_view option, Arguments const& args,
+                         cm::string_view option, Arguments args,
                          int required = 1)
                          int required = 1)
 {
 {
   return CheckPathParametersEx(ctx, cnt, option, args.size(), required);
   return CheckPathParametersEx(ctx, cnt, option, args.size(), required);
@@ -1190,7 +1190,7 @@ inline bool CheckListParametersEx(cmGeneratorExpressionContext* ctx,
 }
 }
 inline bool CheckListParameters(cmGeneratorExpressionContext* ctx,
 inline bool CheckListParameters(cmGeneratorExpressionContext* ctx,
                                 GeneratorExpressionContent const* cnt,
                                 GeneratorExpressionContent const* cnt,
-                                cm::string_view option, Arguments const& args,
+                                cm::string_view option, Arguments args,
                                 int required = 1)
                                 int required = 1)
 {
 {
   return CheckListParametersEx(ctx, cnt, option, args.size(), required);
   return CheckListParametersEx(ctx, cnt, option, args.size(), required);
@@ -1225,7 +1225,7 @@ bool GetNumericArgument(std::string const& arg, cmList::index_type& value)
 
 
 bool GetNumericArguments(
 bool GetNumericArguments(
   cmGeneratorExpressionContext* ctx, GeneratorExpressionContent const* cnt,
   cmGeneratorExpressionContext* ctx, GeneratorExpressionContent const* cnt,
-  Arguments const& args, std::vector<cmList::index_type>& indexes,
+  Arguments args, std::vector<cmList::index_type>& indexes,
   cmList::ExpandElements expandElements = cmList::ExpandElements::No)
   cmList::ExpandElements expandElements = cmList::ExpandElements::No)
 {
 {
   using IndexRange = cmRange<Arguments::const_iterator>;
   using IndexRange = cmRange<Arguments::const_iterator>;

+ 1 - 2
Source/cmGlobalBorlandMakefileGenerator.cxx

@@ -72,8 +72,7 @@ cmGlobalBorlandMakefileGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& config, int /*jobs*/, bool verbose,
   std::string const& config, int /*jobs*/, bool verbose,
-  cmBuildOptions const& buildOptions,
-  std::vector<std::string> const& makeOptions)
+  cmBuildOptions buildOptions, std::vector<std::string> const& makeOptions)
 {
 {
   return this->cmGlobalUnixMakefileGenerator3::GenerateBuildCommand(
   return this->cmGlobalUnixMakefileGenerator3::GenerateBuildCommand(
     makeProgram, projectName, projectDir, targetNames, config,
     makeProgram, projectName, projectDir, targetNames, config,

+ 1 - 1
Source/cmGlobalBorlandMakefileGenerator.h

@@ -63,7 +63,7 @@ protected:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 2 - 2
Source/cmGlobalGenerator.cxx

@@ -2167,7 +2167,7 @@ cmGlobalGenerator::GenerateBuildCommand(
   std::string const& /*unused*/, std::string const& /*unused*/,
   std::string const& /*unused*/, std::string const& /*unused*/,
   std::string const& /*unused*/, std::vector<std::string> const& /*unused*/,
   std::string const& /*unused*/, std::vector<std::string> const& /*unused*/,
   std::string const& /*unused*/, int /*unused*/, bool /*unused*/,
   std::string const& /*unused*/, int /*unused*/, bool /*unused*/,
-  cmBuildOptions const& /*unused*/, std::vector<std::string> const& /*unused*/)
+  cmBuildOptions /*unused*/, std::vector<std::string> const& /*unused*/)
 {
 {
   GeneratedMakeCommand makeCommand;
   GeneratedMakeCommand makeCommand;
   makeCommand.Add("cmGlobalGenerator::GenerateBuildCommand not implemented");
   makeCommand.Add("cmGlobalGenerator::GenerateBuildCommand not implemented");
@@ -2185,7 +2185,7 @@ int cmGlobalGenerator::Build(
   int jobs, std::string const& /*unused*/, std::string const& bindir,
   int jobs, std::string const& /*unused*/, std::string const& bindir,
   std::string const& projectName, std::vector<std::string> const& targets,
   std::string const& projectName, std::vector<std::string> const& targets,
   std::ostream& ostr, std::string const& makeCommandCSTR,
   std::ostream& ostr, std::string const& makeCommandCSTR,
-  std::string const& config, cmBuildOptions const& buildOptions, bool verbose,
+  std::string const& config, cmBuildOptions buildOptions, bool verbose,
   cmDuration timeout, cmSystemTools::OutputOption outputMode,
   cmDuration timeout, cmSystemTools::OutputOption outputMode,
   std::vector<std::string> const& nativeOptions)
   std::vector<std::string> const& nativeOptions)
 {
 {

+ 3 - 3
Source/cmGlobalGenerator.h

@@ -254,8 +254,8 @@ public:
             std::string const& projectName,
             std::string const& projectName,
             std::vector<std::string> const& targetNames, std::ostream& ostr,
             std::vector<std::string> const& targetNames, std::ostream& ostr,
             std::string const& makeProgram, std::string const& config,
             std::string const& makeProgram, std::string const& config,
-            cmBuildOptions const& buildOptions, bool verbose,
-            cmDuration timeout, cmSystemTools::OutputOption outputMode,
+            cmBuildOptions buildOptions, bool verbose, cmDuration timeout,
+            cmSystemTools::OutputOption outputMode,
             std::vector<std::string> const& nativeOptions =
             std::vector<std::string> const& nativeOptions =
               std::vector<std::string>());
               std::vector<std::string>());
 
 
@@ -273,7 +273,7 @@ public:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions = std::vector<std::string>());
     std::vector<std::string> const& makeOptions = std::vector<std::string>());
 
 
   virtual void PrintBuildCommandAdvice(std::ostream& os, int jobs) const;
   virtual void PrintBuildCommandAdvice(std::ostream& os, int jobs) const;

+ 1 - 2
Source/cmGlobalGhsMultiGenerator.cxx

@@ -470,8 +470,7 @@ cmGlobalGhsMultiGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& /*config*/, int jobs, bool verbose,
   std::string const& /*config*/, int jobs, bool verbose,
-  cmBuildOptions const& /*buildOptions*/,
-  std::vector<std::string> const& makeOptions)
+  cmBuildOptions /*buildOptions*/, std::vector<std::string> const& makeOptions)
 {
 {
   GeneratedMakeCommand makeCommand;
   GeneratedMakeCommand makeCommand;
 
 

+ 1 - 1
Source/cmGlobalGhsMultiGenerator.h

@@ -86,7 +86,7 @@ protected:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
   void AddExtraIDETargets() override;
   void AddExtraIDETargets() override;

+ 1 - 2
Source/cmGlobalJOMMakefileGenerator.cxx

@@ -63,8 +63,7 @@ cmGlobalJOMMakefileGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& config, int jobs, bool verbose,
   std::string const& config, int jobs, bool verbose,
-  cmBuildOptions const& buildOptions,
-  std::vector<std::string> const& makeOptions)
+  cmBuildOptions buildOptions, std::vector<std::string> const& makeOptions)
 {
 {
   std::vector<std::string> jomMakeOptions;
   std::vector<std::string> jomMakeOptions;
 
 

+ 1 - 1
Source/cmGlobalJOMMakefileGenerator.h

@@ -54,7 +54,7 @@ protected:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 2
Source/cmGlobalNMakeMakefileGenerator.cxx

@@ -106,8 +106,7 @@ cmGlobalNMakeMakefileGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& config, int /*jobs*/, bool verbose,
   std::string const& config, int /*jobs*/, bool verbose,
-  cmBuildOptions const& buildOptions,
-  std::vector<std::string> const& makeOptions)
+  cmBuildOptions buildOptions, std::vector<std::string> const& makeOptions)
 {
 {
   std::vector<std::string> nmakeMakeOptions;
   std::vector<std::string> nmakeMakeOptions;
 
 

+ 1 - 1
Source/cmGlobalNMakeMakefileGenerator.h

@@ -61,7 +61,7 @@ protected:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 1
Source/cmGlobalNinjaGenerator.cxx

@@ -1001,7 +1001,7 @@ cmGlobalNinjaGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& /*projectName*/,
   std::string const& makeProgram, std::string const& /*projectName*/,
   std::string const& /*projectDir*/,
   std::string const& /*projectDir*/,
   std::vector<std::string> const& targetNames, std::string const& config,
   std::vector<std::string> const& targetNames, std::string const& config,
-  int jobs, bool verbose, cmBuildOptions const& /*buildOptions*/,
+  int jobs, bool verbose, cmBuildOptions /*buildOptions*/,
   std::vector<std::string> const& makeOptions)
   std::vector<std::string> const& makeOptions)
 {
 {
   GeneratedMakeCommand makeCommand;
   GeneratedMakeCommand makeCommand;

+ 1 - 1
Source/cmGlobalNinjaGenerator.h

@@ -201,7 +201,7 @@ public:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 1
Source/cmGlobalUnixMakefileGenerator3.cxx

@@ -536,7 +536,7 @@ cmGlobalUnixMakefileGenerator3::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& /*projectName*/,
   std::string const& makeProgram, std::string const& /*projectName*/,
   std::string const& /*projectDir*/,
   std::string const& /*projectDir*/,
   std::vector<std::string> const& targetNames, std::string const& /*config*/,
   std::vector<std::string> const& targetNames, std::string const& /*config*/,
-  int jobs, bool verbose, cmBuildOptions const& buildOptions,
+  int jobs, bool verbose, cmBuildOptions buildOptions,
   std::vector<std::string> const& makeOptions)
   std::vector<std::string> const& makeOptions)
 {
 {
   GeneratedMakeCommand makeCommand;
   GeneratedMakeCommand makeCommand;

+ 1 - 1
Source/cmGlobalUnixMakefileGenerator3.h

@@ -172,7 +172,7 @@ public:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 2
Source/cmGlobalVisualStudio10Generator.cxx

@@ -1050,8 +1050,7 @@ cmGlobalVisualStudio10Generator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& config, int jobs, bool verbose,
   std::string const& config, int jobs, bool verbose,
-  cmBuildOptions const& buildOptions,
-  std::vector<std::string> const& makeOptions)
+  cmBuildOptions buildOptions, std::vector<std::string> const& makeOptions)
 {
 {
   std::vector<GeneratedMakeCommand> makeCommands;
   std::vector<GeneratedMakeCommand> makeCommands;
   // Select the caller- or user-preferred make program, else MSBuild.
   // Select the caller- or user-preferred make program, else MSBuild.

+ 1 - 1
Source/cmGlobalVisualStudio10Generator.h

@@ -38,7 +38,7 @@ public:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 1
Source/cmGlobalVisualStudio7Generator.cxx

@@ -217,7 +217,7 @@ cmGlobalVisualStudio7Generator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& /*projectDir*/,
   std::string const& /*projectDir*/,
   std::vector<std::string> const& targetNames, std::string const& config,
   std::vector<std::string> const& targetNames, std::string const& config,
-  int /*jobs*/, bool /*verbose*/, cmBuildOptions const& /*buildOptions*/,
+  int /*jobs*/, bool /*verbose*/, cmBuildOptions /*buildOptions*/,
   std::vector<std::string> const& makeOptions)
   std::vector<std::string> const& makeOptions)
 {
 {
   // Select the caller- or user-preferred make program, else devenv.
   // Select the caller- or user-preferred make program, else devenv.

+ 1 - 1
Source/cmGlobalVisualStudio7Generator.h

@@ -78,7 +78,7 @@ public:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 2
Source/cmGlobalWatcomWMakeGenerator.cxx

@@ -67,8 +67,7 @@ cmGlobalWatcomWMakeGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& projectDir, std::vector<std::string> const& targetNames,
   std::string const& config, int /*jobs*/, bool verbose,
   std::string const& config, int /*jobs*/, bool verbose,
-  cmBuildOptions const& buildOptions,
-  std::vector<std::string> const& makeOptions)
+  cmBuildOptions buildOptions, std::vector<std::string> const& makeOptions)
 {
 {
   return this->cmGlobalUnixMakefileGenerator3::GenerateBuildCommand(
   return this->cmGlobalUnixMakefileGenerator3::GenerateBuildCommand(
     makeProgram, projectName, projectDir, targetNames, config,
     makeProgram, projectName, projectDir, targetNames, config,

+ 1 - 1
Source/cmGlobalWatcomWMakeGenerator.h

@@ -62,7 +62,7 @@ protected:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 1 - 1
Source/cmGlobalXCodeGenerator.cxx

@@ -545,7 +545,7 @@ cmGlobalXCodeGenerator::GenerateBuildCommand(
   std::string const& makeProgram, std::string const& projectName,
   std::string const& makeProgram, std::string const& projectName,
   std::string const& /*projectDir*/,
   std::string const& /*projectDir*/,
   std::vector<std::string> const& targetNames, std::string const& config,
   std::vector<std::string> const& targetNames, std::string const& config,
-  int jobs, bool /*verbose*/, cmBuildOptions const& /*buildOptions*/,
+  int jobs, bool /*verbose*/, cmBuildOptions /*buildOptions*/,
   std::vector<std::string> const& makeOptions)
   std::vector<std::string> const& makeOptions)
 {
 {
   std::string const xcodebuild =
   std::string const xcodebuild =

+ 1 - 1
Source/cmGlobalXCodeGenerator.h

@@ -81,7 +81,7 @@ public:
     std::string const& makeProgram, std::string const& projectName,
     std::string const& makeProgram, std::string const& projectName,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& projectDir, std::vector<std::string> const& targetNames,
     std::string const& config, int jobs, bool verbose,
     std::string const& config, int jobs, bool verbose,
-    cmBuildOptions const& buildOptions = cmBuildOptions(),
+    cmBuildOptions buildOptions = cmBuildOptions(),
     std::vector<std::string> const& makeOptions =
     std::vector<std::string> const& makeOptions =
       std::vector<std::string>()) override;
       std::vector<std::string>()) override;
 
 

+ 3 - 4
Source/cmInstallGetRuntimeDependenciesGenerator.cxx

@@ -24,7 +24,7 @@
 
 
 namespace {
 namespace {
 template <typename T, typename F>
 template <typename T, typename F>
-void WriteMultiArgument(std::ostream& os, cm::string_view const& keyword,
+void WriteMultiArgument(std::ostream& os, cm::string_view keyword,
                         std::vector<T> const& list,
                         std::vector<T> const& list,
                         cmScriptGeneratorIndent indent, F transform)
                         cmScriptGeneratorIndent indent, F transform)
 {
 {
@@ -42,7 +42,7 @@ void WriteMultiArgument(std::ostream& os, cm::string_view const& keyword,
 }
 }
 
 
 void WriteFilesArgument(
 void WriteFilesArgument(
-  std::ostream& os, cm::string_view const& keyword,
+  std::ostream& os, cm::string_view keyword,
   std::vector<std::unique_ptr<cmInstallRuntimeDependencySet::Item>> const&
   std::vector<std::unique_ptr<cmInstallRuntimeDependencySet::Item>> const&
     items,
     items,
   std::string const& config, cmScriptGeneratorIndent indent)
   std::string const& config, cmScriptGeneratorIndent indent)
@@ -53,8 +53,7 @@ void WriteFilesArgument(
       -> std::string { return cmStrCat('"', i->GetItemPath(config), '"'); });
       -> std::string { return cmStrCat('"', i->GetItemPath(config), '"'); });
 }
 }
 
 
-void WriteGenexEvaluatorArgument(std::ostream& os,
-                                 cm::string_view const& keyword,
+void WriteGenexEvaluatorArgument(std::ostream& os, cm::string_view keyword,
                                  std::vector<std::string> const& genexes,
                                  std::vector<std::string> const& genexes,
                                  std::string const& config,
                                  std::string const& config,
                                  cmLocalGenerator* lg,
                                  cmLocalGenerator* lg,

+ 4 - 4
Source/cmJSONHelpers.h

@@ -96,7 +96,7 @@ struct cmJSONHelperBuilder
     }
     }
 
 
     template <typename U, typename M, typename F>
     template <typename U, typename M, typename F>
-    Object& Bind(cm::string_view const& name, M U::*member, F func,
+    Object& Bind(cm::string_view name, M U::*member, F func,
                  bool required = true)
                  bool required = true)
     {
     {
       return this->BindPrivate(
       return this->BindPrivate(
@@ -106,7 +106,7 @@ struct cmJSONHelperBuilder
         required);
         required);
     }
     }
     template <typename M, typename F>
     template <typename M, typename F>
-    Object& Bind(cm::string_view const& name, std::nullptr_t, F func,
+    Object& Bind(cm::string_view name, std::nullptr_t, F func,
                  bool required = true)
                  bool required = true)
     {
     {
       return this->BindPrivate(
       return this->BindPrivate(
@@ -119,7 +119,7 @@ struct cmJSONHelperBuilder
         required);
         required);
     }
     }
     template <typename F>
     template <typename F>
-    Object& Bind(cm::string_view const& name, F func, bool required = true)
+    Object& Bind(cm::string_view name, F func, bool required = true)
     {
     {
       return this->BindPrivate(name, MemberFunction(func), required);
       return this->BindPrivate(name, MemberFunction(func), required);
     }
     }
@@ -197,7 +197,7 @@ struct cmJSONHelperBuilder
     JsonErrors::ObjectErrorGenerator Error;
     JsonErrors::ObjectErrorGenerator Error;
     bool AllowExtra;
     bool AllowExtra;
 
 
-    Object& BindPrivate(cm::string_view const& name, MemberFunction&& func,
+    Object& BindPrivate(cm::string_view name, MemberFunction&& func,
                         bool required)
                         bool required)
     {
     {
       this->Members.emplace_back(name, std::move(func), required);
       this->Members.emplace_back(name, std::move(func), required);

+ 3 - 3
Source/cmList.cxx

@@ -134,7 +134,7 @@ protected:
   }
   }
 
 
 public:
 public:
-  StringSorter(cmList::SortConfiguration const& config)
+  StringSorter(cmList::SortConfiguration config)
     : Filters{ this->GetCompareFilter(config.Compare),
     : Filters{ this->GetCompareFilter(config.Compare),
                this->GetCaseFilter(config.Case) }
                this->GetCaseFilter(config.Case) }
     , SortMethod(this->GetComparisonFunction(config.Compare))
     , SortMethod(this->GetComparisonFunction(config.Compare))
@@ -175,7 +175,7 @@ private:
 
 
 cmList::SortConfiguration::SortConfiguration() = default;
 cmList::SortConfiguration::SortConfiguration() = default;
 
 
-cmList& cmList::sort(SortConfiguration const& cfg)
+cmList& cmList::sort(SortConfiguration cfg)
 {
 {
   SortConfiguration config{ cfg };
   SortConfiguration config{ cfg };
 
 
@@ -910,7 +910,7 @@ cmList& cmList::RemoveItems(std::vector<index_type>&& indexes)
   // compute all indexes
   // compute all indexes
   std::vector<size_type> idx(indexes.size());
   std::vector<size_type> idx(indexes.size());
   std::transform(indexes.cbegin(), indexes.cend(), idx.begin(),
   std::transform(indexes.cbegin(), indexes.cend(), idx.begin(),
-                 [this](index_type const& index) -> size_type {
+                 [this](index_type index) -> size_type {
                    return this->ComputeIndex(index);
                    return this->ComputeIndex(index);
                  });
                  });
 
 

+ 1 - 1
Source/cmList.h

@@ -863,7 +863,7 @@ public:
     {
     {
     }
     }
   };
   };
-  cmList& sort(SortConfiguration const& config = SortConfiguration{});
+  cmList& sort(SortConfiguration config = SortConfiguration{});
 
 
   // exception raised on error during transform operations
   // exception raised on error during transform operations
   class transform_error : public std::runtime_error
   class transform_error : public std::runtime_error

+ 1 - 1
Source/cmOSXBundleGenerator.cxx

@@ -58,7 +58,7 @@ void cmOSXBundleGenerator::CreateAppBundle(std::string const& targetName,
 
 
 void cmOSXBundleGenerator::CreateFramework(
 void cmOSXBundleGenerator::CreateFramework(
   std::string const& targetName, std::string const& outpath,
   std::string const& targetName, std::string const& outpath,
-  std::string const& config, cmOSXBundleGenerator::SkipParts const& skipParts)
+  std::string const& config, cmOSXBundleGenerator::SkipParts skipParts)
 {
 {
   if (this->MustSkip()) {
   if (this->MustSkip()) {
     return;
     return;

+ 1 - 1
Source/cmOSXBundleGenerator.h

@@ -34,7 +34,7 @@ public:
   // create a framework at a given root
   // create a framework at a given root
   void CreateFramework(std::string const& targetName, std::string const& root,
   void CreateFramework(std::string const& targetName, std::string const& root,
                        std::string const& config,
                        std::string const& config,
-                       SkipParts const& skipParts = SkipParts{});
+                       SkipParts skipParts = SkipParts{});
 
 
   // create a cf bundle at a given root
   // create a cf bundle at a given root
   void CreateCFBundle(std::string const& targetName, std::string const& root,
   void CreateCFBundle(std::string const& targetName, std::string const& root,

+ 3 - 3
Source/cmPackageInfoReader.cxx

@@ -180,7 +180,7 @@ std::string DeterminePrefix(std::string const& filepath,
 }
 }
 
 
 // Extract key name from value iterator as string_view.
 // Extract key name from value iterator as string_view.
-cm::string_view IterKey(Json::Value::const_iterator const& iter)
+cm::string_view IterKey(Json::Value::const_iterator iter)
 {
 {
   char const* end;
   char const* end;
   char const* const start = iter.memberName(&end);
   char const* const start = iter.memberName(&end);
@@ -719,7 +719,7 @@ bool cmPackageInfoReader::ImportTargets(cmMakefile* makefile,
   Json::Value const& components = this->Data["components"];
   Json::Value const& components = this->Data["components"];
 
 
   for (auto ci = components.begin(), ce = components.end(); ci != ce; ++ci) {
   for (auto ci = components.begin(), ce = components.end(); ci != ce; ++ci) {
-    cm::string_view const& name = IterKey(ci);
+    cm::string_view const name = IterKey(ci);
     std::string const& type =
     std::string const& type =
       cmSystemTools::LowerCase((*ci)["type"].asString());
       cmSystemTools::LowerCase((*ci)["type"].asString());
 
 
@@ -798,7 +798,7 @@ bool cmPackageInfoReader::ImportTargetConfigurations(
 
 
   for (auto ci = components.begin(), ce = components.end(); ci != ce; ++ci) {
   for (auto ci = components.begin(), ce = components.end(); ci != ce; ++ci) {
     // Get component name and look up target.
     // Get component name and look up target.
-    cm::string_view const& name = IterKey(ci);
+    cm::string_view const name = IterKey(ci);
     auto const& ti = this->ComponentTargets.find(std::string{ name });
     auto const& ti = this->ComponentTargets.find(std::string{ name });
     if (ti == this->ComponentTargets.end()) {
     if (ti == this->ComponentTargets.end()) {
       status.SetError(cmStrCat("component "_s, name, " was not found"_s));
       status.SetError(cmStrCat("component "_s, name, " was not found"_s));

+ 2 - 2
Source/cmQtAutoGenInitializer.cxx

@@ -325,8 +325,8 @@ cmQtAutoGen::ConfigStrings<std::vector<std::string>> generateListOptions(
 
 
 cmQtAutoGenInitializer::cmQtAutoGenInitializer(
 cmQtAutoGenInitializer::cmQtAutoGenInitializer(
   cmQtAutoGenGlobalInitializer* globalInitializer,
   cmQtAutoGenGlobalInitializer* globalInitializer,
-  cmGeneratorTarget* genTarget, IntegerVersion const& qtVersion,
-  bool mocEnabled, bool uicEnabled, bool rccEnabled, bool globalAutogenTarget,
+  cmGeneratorTarget* genTarget, IntegerVersion qtVersion, bool mocEnabled,
+  bool uicEnabled, bool rccEnabled, bool globalAutogenTarget,
   bool globalAutoRccTarget)
   bool globalAutoRccTarget)
   : GlobalInitializer(globalInitializer)
   : GlobalInitializer(globalInitializer)
   , GenTarget(genTarget)
   , GenTarget(genTarget)

+ 1 - 1
Source/cmQtAutoGenInitializer.h

@@ -93,7 +93,7 @@ public:
 
 
   cmQtAutoGenInitializer(cmQtAutoGenGlobalInitializer* globalInitializer,
   cmQtAutoGenInitializer(cmQtAutoGenGlobalInitializer* globalInitializer,
                          cmGeneratorTarget* genTarget,
                          cmGeneratorTarget* genTarget,
-                         IntegerVersion const& qtVersion, bool mocEnabled,
+                         IntegerVersion qtVersion, bool mocEnabled,
                          bool uicEnabled, bool rccEnabled,
                          bool uicEnabled, bool rccEnabled,
                          bool globalAutogenTarget, bool globalAutoRccTarget);
                          bool globalAutogenTarget, bool globalAutoRccTarget);
 
 

+ 1 - 1
Source/cmQtAutoGenerator.h

@@ -88,7 +88,7 @@ public:
   // -- Info options
   // -- Info options
   std::string const& InfoFile() const { return this->InfoFile_; }
   std::string const& InfoFile() const { return this->InfoFile_; }
   std::string const& InfoDir() const { return this->InfoDir_; }
   std::string const& InfoDir() const { return this->InfoDir_; }
-  cmFileTime const& InfoFileTime() const { return this->InfoFileTime_; }
+  cmFileTime InfoFileTime() const { return this->InfoFileTime_; }
   std::string const& InfoConfig() const { return this->InfoConfig_; }
   std::string const& InfoConfig() const { return this->InfoConfig_; }
   std::string const& ExecutableConfig() const
   std::string const& ExecutableConfig() const
   {
   {

+ 1 - 1
Source/cmSetSourceFilesPropertiesCommand.cxx

@@ -37,7 +37,7 @@ bool cmSetSourceFilesPropertiesCommand(std::vector<std::string> const& args,
   };
   };
 
 
   auto isAPropertyKeyword =
   auto isAPropertyKeyword =
-    [](std::vector<std::string>::const_iterator const& arg_it) {
+    [](std::vector<std::string>::const_iterator arg_it) {
       return std::any_of(
       return std::any_of(
         std::begin(prop_names), std::end(prop_names),
         std::begin(prop_names), std::end(prop_names),
         [&arg_it](cm::string_view prop_name) { return *arg_it == prop_name; });
         [&arg_it](cm::string_view prop_name) { return *arg_it == prop_name; });

+ 1 - 1
Source/cmStandardLevel.h

@@ -14,7 +14,7 @@ public:
   {
   {
   }
   }
   size_t Index() const { return index_; }
   size_t Index() const { return index_; }
-  friend bool operator<(cmStandardLevel const& l, cmStandardLevel const& r)
+  friend bool operator<(cmStandardLevel l, cmStandardLevel r)
   {
   {
     return l.index_ < r.index_;
     return l.index_ < r.index_;
   }
   }

+ 1 - 1
Source/cmStandardLevelResolver.cxx

@@ -542,7 +542,7 @@ std::string cmStandardLevelResolver::GetEffectiveStandard(
 }
 }
 
 
 std::string cmStandardLevelResolver::GetLevelString(
 std::string cmStandardLevelResolver::GetLevelString(
-  std::string const& lang, cmStandardLevel const& level) const
+  std::string const& lang, cmStandardLevel level) const
 {
 {
   auto mapping = StandardComputerMapping.find(lang);
   auto mapping = StandardComputerMapping.find(lang);
   if (mapping == StandardComputerMapping.end()) {
   if (mapping == StandardComputerMapping.end()) {

+ 1 - 1
Source/cmStandardLevelResolver.h

@@ -30,7 +30,7 @@ public:
                                    std::string const& config) const;
                                    std::string const& config) const;
 
 
   std::string GetLevelString(std::string const& lang,
   std::string GetLevelString(std::string const& lang,
-                             cmStandardLevel const& level) const;
+                             cmStandardLevel level) const;
 
 
   bool AddRequiredTargetFeature(cmTarget* target, std::string const& feature,
   bool AddRequiredTargetFeature(cmTarget* target, std::string const& feature,
                                 std::string* error = nullptr) const;
                                 std::string* error = nullptr) const;

+ 12 - 4
Source/cmString.hxx

@@ -87,7 +87,7 @@ struct IntoString<std::string> : std::true_type
 template <>
 template <>
 struct IntoString<char> : std::true_type
 struct IntoString<char> : std::true_type
 {
 {
-  static std::string into_string(char const& c) { return std::string(1, c); }
+  static std::string into_string(char c) { return std::string(1, c); }
 };
 };
 
 
 /**
 /**
@@ -142,19 +142,27 @@ struct AsStringView<std::string> : std::true_type
 template <>
 template <>
 struct AsStringView<char> : std::true_type
 struct AsStringView<char> : std::true_type
 {
 {
-  static string_view view(char const& s) { return string_view(&s, 1); }
+  static string_view view(
+    char const& s) // clazy:exclude=function-args-by-value
+  {
+    return string_view(&s, 1);
+  }
 };
 };
 
 
 template <>
 template <>
 struct AsStringView<string_view> : std::true_type
 struct AsStringView<string_view> : std::true_type
 {
 {
-  static string_view view(string_view const& s) { return s; }
+  static string_view view(string_view s) { return s; }
 };
 };
 
 
 template <>
 template <>
 struct AsStringView<static_string_view> : std::true_type
 struct AsStringView<static_string_view> : std::true_type
 {
 {
-  static string_view view(static_string_view const& s) { return s; }
+  static string_view view(
+    static_string_view const& s) // clazy:exclude=function-args-by-value
+  {
+    return s;
+  }
 };
 };
 
 
 template <>
 template <>

+ 1 - 1
Source/cmStringAlgorithms.cxx

@@ -230,7 +230,7 @@ std::string cmJoin(std::vector<std::string> const& rng,
   return cmJoinStrings(rng, separator, initial);
   return cmJoinStrings(rng, separator, initial);
 }
 }
 
 
-std::string cmJoin(cmStringRange const& rng, cm::string_view separator,
+std::string cmJoin(cmStringRange rng, cm::string_view separator,
                    cm::string_view initial)
                    cm::string_view initial)
 {
 {
   return cmJoinStrings(rng, separator, initial);
   return cmJoinStrings(rng, separator, initial);

+ 1 - 1
Source/cmStringAlgorithms.h

@@ -126,7 +126,7 @@ std::string cmJoinStrings(Range const& rng, cm::string_view separator,
 std::string cmJoin(std::vector<std::string> const& rng,
 std::string cmJoin(std::vector<std::string> const& rng,
                    cm::string_view separator, cm::string_view initial = {});
                    cm::string_view separator, cm::string_view initial = {});
 
 
-std::string cmJoin(cmStringRange const& rng, cm::string_view separator,
+std::string cmJoin(cmStringRange rng, cm::string_view separator,
                    cm::string_view initial = {});
                    cm::string_view initial = {});
 
 
 enum class cmTokenizerMode
 enum class cmTokenizerMode

+ 2 - 2
Source/cmSystemTools.cxx

@@ -3322,8 +3322,8 @@ bool cmSystemTools::GuessLibraryInstallName(std::string const& fullPath,
   return false;
   return false;
 }
 }
 
 
-static std::string::size_type cmSystemToolsFindRPath(
-  cm::string_view const& have, cm::string_view const& want)
+static std::string::size_type cmSystemToolsFindRPath(cm::string_view have,
+                                                     cm::string_view want)
 {
 {
   std::string::size_type pos = 0;
   std::string::size_type pos = 0;
   while (pos < have.size()) {
   while (pos < have.size()) {

+ 2 - 3
Source/cmTarget.cxx

@@ -1626,7 +1626,7 @@ std::set<std::string> const& cmTarget::GetSystemIncludeDirectories() const
 }
 }
 
 
 void cmTarget::AddInstallIncludeDirectories(cmTargetExport const& te,
 void cmTarget::AddInstallIncludeDirectories(cmTargetExport const& te,
-                                            cmStringRange const& incs)
+                                            cmStringRange incs)
 {
 {
   std::copy(
   std::copy(
     incs.begin(), incs.end(),
     incs.begin(), incs.end(),
@@ -2403,8 +2403,7 @@ bool CheckLinkLibraryPattern(UsageRequirementProperty const& usage,
 }
 }
 }
 }
 
 
-void cmTarget::FinalizeTargetConfiguration(
-  cmBTStringRange const& compileDefinitions)
+void cmTarget::FinalizeTargetConfiguration(cmBTStringRange compileDefinitions)
 {
 {
   if (this->GetType() == cmStateEnums::GLOBAL_TARGET) {
   if (this->GetType() == cmStateEnums::GLOBAL_TARGET) {
     return;
     return;

+ 2 - 2
Source/cmTarget.h

@@ -272,7 +272,7 @@ public:
   void InsertPrecompileHeader(BT<std::string> const& entry);
   void InsertPrecompileHeader(BT<std::string> const& entry);
 
 
   void AppendBuildInterfaceIncludes();
   void AppendBuildInterfaceIncludes();
-  void FinalizeTargetConfiguration(cmBTStringRange const& compileDefinitions);
+  void FinalizeTargetConfiguration(cmBTStringRange compileDefinitions);
 
 
   std::string GetDebugGeneratorExpressions(std::string const& value,
   std::string GetDebugGeneratorExpressions(std::string const& value,
                                            cmTargetLinkLibraryType llt) const;
                                            cmTargetLinkLibraryType llt) const;
@@ -281,7 +281,7 @@ public:
   std::set<std::string> const& GetSystemIncludeDirectories() const;
   std::set<std::string> const& GetSystemIncludeDirectories() const;
 
 
   void AddInstallIncludeDirectories(cmTargetExport const& te,
   void AddInstallIncludeDirectories(cmTargetExport const& te,
-                                    cmStringRange const& incs);
+                                    cmStringRange incs);
   cmStringRange GetInstallIncludeDirectoriesEntries(
   cmStringRange GetInstallIncludeDirectoriesEntries(
     cmTargetExport const& te) const;
     cmTargetExport const& te) const;
 
 

+ 1 - 1
Source/cmWindowsRegistry.cxx

@@ -524,7 +524,7 @@ namespace std {
 template <>
 template <>
 struct hash<cmWindowsRegistry::View>
 struct hash<cmWindowsRegistry::View>
 {
 {
-  size_t operator()(cmWindowsRegistry::View const& v) const noexcept
+  size_t operator()(cmWindowsRegistry::View v) const noexcept
   {
   {
     return static_cast<
     return static_cast<
       typename underlying_type<cmWindowsRegistry::View>::type>(v);
       typename underlying_type<cmWindowsRegistry::View>::type>(v);

+ 1 - 2
Source/cmXMLWriter.h

@@ -108,8 +108,7 @@ private:
    * Therefore we must assume it is an arbitrary point in time. Instead of this
    * Therefore we must assume it is an arbitrary point in time. Instead of this
    * method, it is recommended to convert it by means of the to_time_t method.
    * method, it is recommended to convert it by means of the to_time_t method.
    */
    */
-  static std::time_t SafeContent(
-    std::chrono::system_clock::time_point const& value)
+  static std::time_t SafeContent(std::chrono::system_clock::time_point value)
   {
   {
     return std::chrono::system_clock::to_time_t(value);
     return std::chrono::system_clock::to_time_t(value);
   }
   }

+ 2 - 2
Source/cmake.cxx

@@ -455,8 +455,8 @@ void cmake::CleanupCommandsAndMacros()
 
 
 #ifndef CMAKE_BOOTSTRAP
 #ifndef CMAKE_BOOTSTRAP
 void cmake::SetWarningFromPreset(std::string const& name,
 void cmake::SetWarningFromPreset(std::string const& name,
-                                 cm::optional<bool> const& warning,
-                                 cm::optional<bool> const& error)
+                                 cm::optional<bool> warning,
+                                 cm::optional<bool> error)
 {
 {
   if (warning) {
   if (warning) {
     if (*warning) {
     if (*warning) {

+ 2 - 2
Source/cmake.h

@@ -388,8 +388,8 @@ public:
 
 
 #ifndef CMAKE_BOOTSTRAP
 #ifndef CMAKE_BOOTSTRAP
   void SetWarningFromPreset(std::string const& name,
   void SetWarningFromPreset(std::string const& name,
-                            cm::optional<bool> const& warning,
-                            cm::optional<bool> const& error);
+                            cm::optional<bool> warning,
+                            cm::optional<bool> error);
   void ProcessPresetVariables();
   void ProcessPresetVariables();
   void PrintPresetVariables();
   void PrintPresetVariables();
   void ProcessPresetEnvironment();
   void ProcessPresetEnvironment();

+ 1 - 1
Tests/CMakeLib/testCommon.h

@@ -29,7 +29,7 @@
 
 
 namespace {
 namespace {
 
 
-inline int runTests(std::initializer_list<std::function<bool()>> const& tests,
+inline int runTests(std::initializer_list<std::function<bool()>> tests,
                     bool const fail_fast = true)
                     bool const fail_fast = true)
 {
 {
   int result = 0;
   int result = 0;

+ 3 - 6
Tests/CMakeLib/testDebuggerAdapter.cxx

@@ -83,16 +83,13 @@ bool runTest(std::function<bool(dap::Session&)> onThreadExitedEvent)
 
 
   auto connection = std::make_shared<DebuggerLocalConnection>();
   auto connection = std::make_shared<DebuggerLocalConnection>();
   std::unique_ptr<dap::Session> client = dap::Session::create();
   std::unique_ptr<dap::Session> client = dap::Session::create();
-  client->registerHandler([&](dap::InitializedEvent const& e) {
-    (void)e;
+  client->registerHandler([&](dap::InitializedEvent /*unused*/) {
     initializedEventReceivedPromise.set_value(true);
     initializedEventReceivedPromise.set_value(true);
   });
   });
-  client->registerHandler([&](dap::ExitedEvent const& e) {
-    (void)e;
+  client->registerHandler([&](dap::ExitedEvent /*unused*/) {
     exitedEventReceivedPromise.set_value(true);
     exitedEventReceivedPromise.set_value(true);
   });
   });
-  client->registerHandler([&](dap::TerminatedEvent const& e) {
-    (void)e;
+  client->registerHandler([&](dap::TerminatedEvent const& /*unused*/) {
     terminatedEventReceivedPromise.set_value(true);
     terminatedEventReceivedPromise.set_value(true);
   });
   });
   client->registerHandler([&](dap::ThreadEvent const& e) {
   client->registerHandler([&](dap::ThreadEvent const& e) {

+ 3 - 6
Tests/CMakeLib/testDebuggerAdapterPipe.cxx

@@ -76,16 +76,13 @@ bool testProtocolWithPipes()
 #endif
 #endif
 
 
   std::unique_ptr<dap::Session> client = dap::Session::create();
   std::unique_ptr<dap::Session> client = dap::Session::create();
-  client->registerHandler([&](dap::InitializedEvent const& e) {
-    (void)e;
+  client->registerHandler([&](dap::InitializedEvent /*unused*/) {
     initializedEventReceivedPromise.set_value(true);
     initializedEventReceivedPromise.set_value(true);
   });
   });
-  client->registerHandler([&](dap::ExitedEvent const& e) {
-    (void)e;
+  client->registerHandler([&](dap::ExitedEvent /*unused*/) {
     exitedEventReceivedPromise.set_value(true);
     exitedEventReceivedPromise.set_value(true);
   });
   });
-  client->registerHandler([&](dap::TerminatedEvent const& e) {
-    (void)e;
+  client->registerHandler([&](dap::TerminatedEvent const& /*unused*/) {
     terminatedEventReceivedPromise.set_value(true);
     terminatedEventReceivedPromise.set_value(true);
   });
   });
   client->registerHandler([&](dap::ThreadEvent const& e) {
   client->registerHandler([&](dap::ThreadEvent const& e) {