diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx
index 7fd76df654c740bfc80bd4931ea27d92c36da439..1ad41525127927fee678e2fad49b75a3a950623b 100644
--- a/Source/CPack/cmCPackDebGenerator.cxx
+++ b/Source/CPack/cmCPackDebGenerator.cxx
@@ -50,8 +50,8 @@ int cmCPackDebGenerator::InitializeInternal()
   return this->Superclass::InitializeInternal();
 }
 
-int cmCPackDebGenerator::PackageOnePack(std::string initialTopLevel,
-                                        std::string packageName)
+int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel,
+                                        std::string const& packageName)
 {
   int retval = 1;
   // Begin the archive for this pack
diff --git a/Source/CPack/cmCPackDebGenerator.h b/Source/CPack/cmCPackDebGenerator.h
index f640ab4a66094d8aacdadc4005c5e37b3a1c1494..ff34ca57191fa45f2a2b9925f9a8634dd1a858aa 100644
--- a/Source/CPack/cmCPackDebGenerator.h
+++ b/Source/CPack/cmCPackDebGenerator.h
@@ -49,7 +49,8 @@ protected:
   /**
    * This method factors out the work done in component packaging case.
    */
-  int PackageOnePack(std::string initialToplevel, std::string packageName);
+  int PackageOnePack(std::string const& initialToplevel,
+                     std::string const& packageName);
   /**
    * The method used to package files when component
    * install is used. This will create one
diff --git a/Source/CPack/cmCPackRPMGenerator.cxx b/Source/CPack/cmCPackRPMGenerator.cxx
index a4b9a47eca812961d6c58ba588f1721b5f2641bd..9827b709992990f33400ce8110f42b5f269a547f 100644
--- a/Source/CPack/cmCPackRPMGenerator.cxx
+++ b/Source/CPack/cmCPackRPMGenerator.cxx
@@ -61,8 +61,8 @@ void cmCPackRPMGenerator::AddGeneratedPackageNames()
   packageFileNames.push_back(fileNames.substr(pos1, pos2 - pos1));
 }
 
-int cmCPackRPMGenerator::PackageOnePack(std::string initialToplevel,
-                                        std::string packageName)
+int cmCPackRPMGenerator::PackageOnePack(std::string const& initialToplevel,
+                                        std::string const& packageName)
 {
   int retval = 1;
   // Begin the archive for this pack
diff --git a/Source/CPack/cmCPackRPMGenerator.h b/Source/CPack/cmCPackRPMGenerator.h
index 40b9bb8634a6f87467659c6503e4c23b599aa3e2..b39f2c2fc427d8ed3a68e8480f10ed754b972998 100644
--- a/Source/CPack/cmCPackRPMGenerator.h
+++ b/Source/CPack/cmCPackRPMGenerator.h
@@ -54,7 +54,8 @@ protected:
   /**
    * This method factors out the work done in component packaging case.
    */
-  int PackageOnePack(std::string initialToplevel, std::string packageName);
+  int PackageOnePack(std::string const& initialToplevel,
+                     std::string const& packageName);
   /**
    * The method used to package files when component
    * install is used. This will create one
diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx
index 51456ed2b19fe9c2575a307208455ae551dbe4c3..1f2d29c96d9cc6900f49e9702afe3e0a3f0cecc0 100644
--- a/Source/CTest/cmCTestCoverageHandler.cxx
+++ b/Source/CTest/cmCTestCoverageHandler.cxx
@@ -1759,7 +1759,7 @@ int cmCTestCoverageHandler::HandleTracePyCoverage(
 }
 
 std::string cmCTestCoverageHandler::FindFile(
-  cmCTestCoverageHandlerContainer* cont, std::string fileName)
+  cmCTestCoverageHandlerContainer* cont, std::string const& fileName)
 {
   std::string fileNameNoE =
     cmSystemTools::GetFilenameWithoutLastExtension(fileName);
diff --git a/Source/CTest/cmCTestCoverageHandler.h b/Source/CTest/cmCTestCoverageHandler.h
index 4a2a6028830bceb226dfa2cf795b21f75e641d5e..177321844a19151cd1da93d9f8181b82c8dd6288 100644
--- a/Source/CTest/cmCTestCoverageHandler.h
+++ b/Source/CTest/cmCTestCoverageHandler.h
@@ -119,7 +119,7 @@ private:
   // Find the source file based on the source and build tree. This is used for
   // Trace.py mode, since that one does not tell us where the source file is.
   std::string FindFile(cmCTestCoverageHandlerContainer* cont,
-                       std::string fileName);
+                       std::string const& fileName);
 
   std::set<std::string> FindUncoveredFiles(
     cmCTestCoverageHandlerContainer* cont);
diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx
index d155023ca3135058dd22ea1d3983e617957e954f..6f19b325ac06692e3573a24593133858f34bf712 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.cxx
+++ b/Source/CTest/cmCTestMultiProcessHandler.cxx
@@ -500,7 +500,7 @@ void cmCTestMultiProcessHandler::ReadCostData()
   }
 }
 
-int cmCTestMultiProcessHandler::SearchByName(std::string name)
+int cmCTestMultiProcessHandler::SearchByName(std::string const& name)
 {
   int index = -1;
 
diff --git a/Source/CTest/cmCTestMultiProcessHandler.h b/Source/CTest/cmCTestMultiProcessHandler.h
index cb709cc0c8137e6c40d609d7ed6b9ec7ee0d4c71..9ec1528af27ee12cd64a1b68bd802492760f8565 100644
--- a/Source/CTest/cmCTestMultiProcessHandler.h
+++ b/Source/CTest/cmCTestMultiProcessHandler.h
@@ -84,7 +84,7 @@ protected:
   void UpdateCostData();
   void ReadCostData();
   // Return index of a test based on its name
-  int SearchByName(std::string name);
+  int SearchByName(std::string const& name);
 
   void CreateTestCostList();
 
diff --git a/Source/CTest/cmParseBlanketJSCoverage.cxx b/Source/CTest/cmParseBlanketJSCoverage.cxx
index 1e4284746a5950c5cc64d4eaecd1b32487a980bd..9dc15c66f079d6f0ce675bfe23e49c3ef67e182f 100644
--- a/Source/CTest/cmParseBlanketJSCoverage.cxx
+++ b/Source/CTest/cmParseBlanketJSCoverage.cxx
@@ -46,7 +46,7 @@ public:
       return line.substr(begIndex, line.npos);
     }
   }
-  bool ParseFile(std::string file)
+  bool ParseFile(std::string const& file)
   {
     FileLinesType localCoverageVector;
     std::string filename;
@@ -138,7 +138,7 @@ bool cmParseBlanketJSCoverage::LoadCoverageData(std::vector<std::string> files)
   return true;
 }
 
-bool cmParseBlanketJSCoverage::ReadJSONFile(std::string file)
+bool cmParseBlanketJSCoverage::ReadJSONFile(std::string const& file)
 {
   cmParseBlanketJSCoverage::JSONParser parser(this->Coverage);
   cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT,
diff --git a/Source/CTest/cmParseBlanketJSCoverage.h b/Source/CTest/cmParseBlanketJSCoverage.h
index 4fc64e7db4ea73a4633ca5bec20cc9a163a7524a..a4f66705b5353887db6398cc1d844ca2b78ac089 100644
--- a/Source/CTest/cmParseBlanketJSCoverage.h
+++ b/Source/CTest/cmParseBlanketJSCoverage.h
@@ -35,7 +35,7 @@ public:
                            cmCTest* ctest);
   bool LoadCoverageData(std::vector<std::string> files);
   //  Read the JSON output
-  bool ReadJSONFile(std::string file);
+  bool ReadJSONFile(std::string const& file);
 
 protected:
   class JSONParser;
diff --git a/Source/CTest/cmParseDelphiCoverage.cxx b/Source/CTest/cmParseDelphiCoverage.cxx
index 2e06078bacc8ed84d431a98ccb005a02857df2fc..9d86ce957ef1e500b76870ae4745887171cb7f1f 100644
--- a/Source/CTest/cmParseDelphiCoverage.cxx
+++ b/Source/CTest/cmParseDelphiCoverage.cxx
@@ -22,7 +22,7 @@ public:
   virtual ~HTMLParser() {}
 
   bool initializeDelphiFile(
-    const std::string filename,
+    std::string const& filename,
     cmParseDelphiCoverage::HTMLParser::FileLinesType& coverageVector)
   {
     std::string line;
@@ -197,7 +197,7 @@ cmParseDelphiCoverage::cmParseDelphiCoverage(
 }
 
 bool cmParseDelphiCoverage::LoadCoverageData(
-  const std::vector<std::string> files)
+  std::vector<std::string> const& files)
 {
   size_t i;
   std::string path;
diff --git a/Source/CTest/cmParseDelphiCoverage.h b/Source/CTest/cmParseDelphiCoverage.h
index 06dea2b16f795d6e74546654b267b7df4e4db3c9..c1c495cee4c74f18ee3392b488f5dea1b3fd655b 100644
--- a/Source/CTest/cmParseDelphiCoverage.h
+++ b/Source/CTest/cmParseDelphiCoverage.h
@@ -28,7 +28,7 @@ class cmParseDelphiCoverage
 {
 public:
   cmParseDelphiCoverage(cmCTestCoverageHandlerContainer& cont, cmCTest* ctest);
-  bool LoadCoverageData(const std::vector<std::string> files);
+  bool LoadCoverageData(std::vector<std::string> const& files);
   bool ReadDelphiHTML(const char* file);
   // Read a single HTML file from output
   bool ReadHTMLFile(const char* f);
diff --git a/Source/CTest/cmParseJacocoCoverage.cxx b/Source/CTest/cmParseJacocoCoverage.cxx
index 6afaca6b386460d2e57b2aab5b3b35780d371a56..335535d92d95dd1d09709e96d89eddc411e841ce 100644
--- a/Source/CTest/cmParseJacocoCoverage.cxx
+++ b/Source/CTest/cmParseJacocoCoverage.cxx
@@ -85,7 +85,7 @@ protected:
     }
   }
 
-  virtual bool FindPackagePath(const std::string fileName)
+  virtual bool FindPackagePath(std::string const& fileName)
   {
     // Search for the source file in the source directory.
     if (this->PackagePathFound(fileName, this->Coverage.SourceDir)) {
@@ -99,8 +99,8 @@ protected:
     return false;
   }
 
-  virtual bool PackagePathFound(const std::string fileName,
-                                const std::string baseDir)
+  virtual bool PackagePathFound(std::string const& fileName,
+                                std::string const& baseDir)
   {
     // Search for the file in the baseDir and its subdirectories.
     std::string packageGlob = baseDir;
@@ -149,7 +149,7 @@ cmParseJacocoCoverage::cmParseJacocoCoverage(
 }
 
 bool cmParseJacocoCoverage::LoadCoverageData(
-  const std::vector<std::string> files)
+  std::vector<std::string> const& files)
 {
   // load all the jacoco.xml files in the source directory
   cmsys::Directory dir;
diff --git a/Source/CTest/cmParseJacocoCoverage.h b/Source/CTest/cmParseJacocoCoverage.h
index fa31d4779d974eafa00adecd8baf4468accde233..bcd472e2bf6a7bd25d8574a1b8782daa2b4b1e8c 100644
--- a/Source/CTest/cmParseJacocoCoverage.h
+++ b/Source/CTest/cmParseJacocoCoverage.h
@@ -27,7 +27,7 @@ class cmParseJacocoCoverage
 {
 public:
   cmParseJacocoCoverage(cmCTestCoverageHandlerContainer& cont, cmCTest* ctest);
-  bool LoadCoverageData(const std::vector<std::string> files);
+  bool LoadCoverageData(std::vector<std::string> const& files);
 
   std::string PackageName;
   std::string FileName;
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 64e80783fe0c99379781b1d88b7a0234ab40bb17..bc36c5adc3470da0649a2bbf3b4ed4458952a516 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -67,7 +67,7 @@
   std::cerr << __LINE__ << " ";                                               \
   std::cerr
 
-struct tm* cmCTest::GetNightlyTime(std::string str, bool tomorrowtag)
+struct tm* cmCTest::GetNightlyTime(std::string const& str, bool tomorrowtag)
 {
   struct tm* lctime;
   time_t tctime = time(0);
@@ -170,8 +170,8 @@ static size_t HTTPResponseCallback(void* ptr, size_t size, size_t nmemb,
 }
 
 int cmCTest::HTTPRequest(std::string url, HTTPMethod method,
-                         std::string& response, std::string fields,
-                         std::string putFile, int timeout)
+                         std::string& response, std::string const& fields,
+                         std::string const& putFile, int timeout)
 {
   CURL* curl;
   FILE* file;
@@ -1481,7 +1481,7 @@ int cmCTest::GenerateNotesFile(const char* cfiles)
   return this->GenerateNotesFile(files);
 }
 
-std::string cmCTest::Base64GzipEncodeFile(std::string file)
+std::string cmCTest::Base64GzipEncodeFile(std::string const& file)
 {
   std::string tarFile = file + "_temp.tar.gz";
   std::vector<std::string> files;
@@ -1499,7 +1499,7 @@ std::string cmCTest::Base64GzipEncodeFile(std::string file)
   return base64;
 }
 
-std::string cmCTest::Base64EncodeFile(std::string file)
+std::string cmCTest::Base64EncodeFile(std::string const& file)
 {
   size_t const len = cmSystemTools::FileLength(file);
   cmsys::ifstream ifs(file.c_str(), std::ios::in
@@ -2208,7 +2208,7 @@ void cmCTest::SetNotesFiles(const char* notes)
   this->NotesFiles = notes;
 }
 
-void cmCTest::SetStopTime(std::string time)
+void cmCTest::SetStopTime(std::string const& time)
 {
   this->StopTime = time;
   this->DetermineNextDayStop();
diff --git a/Source/cmCTest.h b/Source/cmCTest.h
index 1c3490e2b95faafa0f75085ff2cf723b750b555b..65ecaa4dd6770c920d86fc2384350f6c9aa7451f 100644
--- a/Source/cmCTest.h
+++ b/Source/cmCTest.h
@@ -108,8 +108,8 @@ public:
    * Perform an HTTP request.
    */
   static int HTTPRequest(std::string url, HTTPMethod method,
-                         std::string& response, std::string fields = "",
-                         std::string putFile = "", int timeout = 0);
+                         std::string& response, std::string const& fields = "",
+                         std::string const& putFile = "", int timeout = 0);
 #endif
 
   /** Get a testing part id from its string name.  Returns PartCount
@@ -143,7 +143,7 @@ public:
   /*
    * A utility function that returns the nightly time
    */
-  struct tm* GetNightlyTime(std::string str, bool tomorrowtag);
+  struct tm* GetNightlyTime(std::string const& str, bool tomorrowtag);
 
   /*
    * Is the tomorrow tag set?
@@ -211,9 +211,9 @@ public:
   std::string CurrentTime();
 
   //! tar/gzip and then base 64 encode a file
-  std::string Base64GzipEncodeFile(std::string file);
+  std::string Base64GzipEncodeFile(std::string const& file);
   //! base64 encode a file
-  std::string Base64EncodeFile(std::string file);
+  std::string Base64EncodeFile(std::string const& file);
 
   /**
    * Return the time remaining that the script is allowed to run in
@@ -240,7 +240,7 @@ public:
   std::string GetCDashVersion();
 
   std::string GetStopTime() { return this->StopTime; }
-  void SetStopTime(std::string time);
+  void SetStopTime(std::string const& time);
 
   // Used for parallel ctest job scheduling
   std::string GetScheduleType() { return this->ScheduleType; }
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 249a3b637245c3ae266380ee01f5be5ad3c29dd8..a1764a38abfb8063218b3c1cedcb860c33109726 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -2746,7 +2746,7 @@ std::string cmGlobalGenerator::EscapeJSON(const std::string& s)
 }
 
 void cmGlobalGenerator::SetFilenameTargetDepends(
-  cmSourceFile* sf, std::set<cmGeneratorTarget const*> tgts)
+  cmSourceFile* sf, std::set<cmGeneratorTarget const*> const& tgts)
 {
   this->FilenameTargetDepends[sf] = tgts;
 }
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index fcf8127cd831b88b1dda7c07b62744e3c4f023a0..2575911ff5c929613e630ba982e2f05305563eb6 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -348,8 +348,8 @@ public:
 
   void CreateEvaluationSourceFiles(std::string const& config) const;
 
-  void SetFilenameTargetDepends(cmSourceFile* sf,
-                                std::set<const cmGeneratorTarget*> tgts);
+  void SetFilenameTargetDepends(
+    cmSourceFile* sf, std::set<cmGeneratorTarget const*> const& tgts);
   const std::set<const cmGeneratorTarget*>& GetFilenameTargetDepends(
     cmSourceFile* sf) const;
 
diff --git a/Source/cmInstallFilesGenerator.cxx b/Source/cmInstallFilesGenerator.cxx
index a2cfc5a2f860eee3cc378f64cc869443c7cacbe7..8c1b357d3e8ab023b2325d30cf3d997a6d027c50 100644
--- a/Source/cmInstallFilesGenerator.cxx
+++ b/Source/cmInstallFilesGenerator.cxx
@@ -61,7 +61,7 @@ std::string cmInstallFilesGenerator::GetDestination(
 }
 
 void cmInstallFilesGenerator::AddFilesInstallRule(
-  std::ostream& os, const std::string config, Indent const& indent,
+  std::ostream& os, std::string const& config, Indent const& indent,
   std::vector<std::string> const& files)
 {
   // Write code to install the files.
diff --git a/Source/cmInstallFilesGenerator.h b/Source/cmInstallFilesGenerator.h
index 86b589928cb034ca949b995017bc071492c11a30..0e738d396e232e46e718b6c449c269d679c9f3c1 100644
--- a/Source/cmInstallFilesGenerator.h
+++ b/Source/cmInstallFilesGenerator.h
@@ -38,7 +38,7 @@ protected:
   virtual void GenerateScriptForConfig(std::ostream& os,
                                        const std::string& config,
                                        Indent const& indent);
-  void AddFilesInstallRule(std::ostream& os, const std::string config,
+  void AddFilesInstallRule(std::ostream& os, std::string const& config,
                            Indent const& indent,
                            std::vector<std::string> const& files);
 
diff --git a/Source/cmSourceGroup.cxx b/Source/cmSourceGroup.cxx
index c09d596c86dc3e0ae3a86e6a7d0a23eac690dfa6..394b33a473f801762d204461a06c3fbfb800d89c 100644
--- a/Source/cmSourceGroup.cxx
+++ b/Source/cmSourceGroup.cxx
@@ -103,7 +103,7 @@ const std::vector<const cmSourceFile*>& cmSourceGroup::GetSourceFiles() const
   return this->SourceFiles;
 }
 
-void cmSourceGroup::AddChild(cmSourceGroup child)
+void cmSourceGroup::AddChild(cmSourceGroup const& child)
 {
   this->Internal->GroupChildren.push_back(child);
 }
diff --git a/Source/cmSourceGroup.h b/Source/cmSourceGroup.h
index 5a551f8cf79bf169c209e74bbf9e2fbd143c6f19..8603e95e78a3629fc1233f0b778f28d7628d43f0 100644
--- a/Source/cmSourceGroup.h
+++ b/Source/cmSourceGroup.h
@@ -52,7 +52,7 @@ public:
   /**
    * Add child to this sourcegroup
    */
-  void AddChild(cmSourceGroup child);
+  void AddChild(cmSourceGroup const& child);
 
   /**
    * Looks up child and returns it
diff --git a/Source/cmState.cxx b/Source/cmState.cxx
index b674b4eef4e05f8771d0b7e5a2531dbaa6102298..693297918b37ddf252f71eb39150faef89ae5a39 100644
--- a/Source/cmState.cxx
+++ b/Source/cmState.cxx
@@ -1616,7 +1616,7 @@ bool cmState::Snapshot::StrictWeakOrder::operator()(
 
 void cmState::Directory::SetProperty(const std::string& prop,
                                      const char* value,
-                                     cmListFileBacktrace lfbt)
+                                     cmListFileBacktrace const& lfbt)
 {
   if (prop == "INCLUDE_DIRECTORIES") {
     if (!value) {
@@ -1648,7 +1648,7 @@ void cmState::Directory::SetProperty(const std::string& prop,
 
 void cmState::Directory::AppendProperty(const std::string& prop,
                                         const char* value, bool asString,
-                                        cmListFileBacktrace lfbt)
+                                        cmListFileBacktrace const& lfbt)
 {
   if (prop == "INCLUDE_DIRECTORIES") {
     this->AppendIncludeDirectoriesEntry(value, lfbt);
diff --git a/Source/cmState.h b/Source/cmState.h
index 7ecac56314b5f2d15645f6141596c579238d7b2f..18c45b83f1846200eb9a32c3ae143d1c8faf90e6 100644
--- a/Source/cmState.h
+++ b/Source/cmState.h
@@ -164,9 +164,9 @@ public:
     void ClearCompileOptions();
 
     void SetProperty(const std::string& prop, const char* value,
-                     cmListFileBacktrace lfbt);
+                     cmListFileBacktrace const& lfbt);
     void AppendProperty(const std::string& prop, const char* value,
-                        bool asString, cmListFileBacktrace lfbt);
+                        bool asString, cmListFileBacktrace const& lfbt);
     const char* GetProperty(const std::string& prop) const;
     const char* GetProperty(const std::string& prop, bool chain) const;
     bool GetPropertyAsBool(const std::string& prop) const;
diff --git a/Tests/CMakeLib/testRST.cxx b/Tests/CMakeLib/testRST.cxx
index a575d0d8c018d72f1237c2c192f64db00d7423c8..e5a96c22cd403f6b71232d4eebe5c7dd6bb98465 100644
--- a/Tests/CMakeLib/testRST.cxx
+++ b/Tests/CMakeLib/testRST.cxx
@@ -13,7 +13,7 @@
 
 #include "cmSystemTools.h"
 
-void reportLine(std::ostream& os, bool ret, std::string line, bool eol)
+void reportLine(std::ostream& os, bool ret, std::string const& line, bool eol)
 {
   if (ret) {
     os << "\"" << line << "\" (" << (eol ? "with EOL" : "without EOL") << ")";