Fix clang-tidy loop variable copy warning

* Loop variable is copied but only used as const reference; consider
  making it a const reference. For more info, see
  https://clang.llvm.org/extra/clang-tidy/checks/performance/for-range-copy.html

Change-Id: I8f771601bdfd2675a20d04f0f8495b701d23bc10
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/351175
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Steven Perron <stevenperron@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Steven Perron <stevenperron@google.com>
diff --git a/src/dawn/native/AsyncTask.cpp b/src/dawn/native/AsyncTask.cpp
index 57499ea..39f62dd 100644
--- a/src/dawn/native/AsyncTask.cpp
+++ b/src/dawn/native/AsyncTask.cpp
@@ -94,7 +94,7 @@
         completionCallbacks = std::move(state->completionCallbacks);
         state->completionCallbacks.clear();
     });
-    for (auto completionCallback : completionCallbacks) {
+    for (const auto& completionCallback : completionCallbacks) {
         completionCallback();
     }
 
diff --git a/src/dawn/native/ErrorData.cpp b/src/dawn/native/ErrorData.cpp
index 41a2c3a..eb35db1 100644
--- a/src/dawn/native/ErrorData.cpp
+++ b/src/dawn/native/ErrorData.cpp
@@ -107,7 +107,7 @@
     ss << mMessage << "\n";
 
     if (!mContexts.empty()) {
-        for (auto context : mContexts) {
+        for (const auto& context : mContexts) {
             ss << " - While " << context << "\n";
         }
     }
@@ -123,14 +123,14 @@
 
     if (!mDebugGroups.empty()) {
         ss << "\nDebug group stack:\n";
-        for (auto label : mDebugGroups) {
+        for (const auto& label : mDebugGroups) {
             ss << " > \"" << label << "\"\n";
         }
     }
 
     if (!mBackendMessages.empty()) {
         ss << "\nBackend messages:\n";
-        for (auto message : mBackendMessages) {
+        for (const auto& message : mBackendMessages) {
             ss << " * " << message << "\n";
         }
     }
diff --git a/src/dawn/native/ExecutionQueue.cpp b/src/dawn/native/ExecutionQueue.cpp
index 7dd279f..8aca9b6 100644
--- a/src/dawn/native/ExecutionQueue.cpp
+++ b/src/dawn/native/ExecutionQueue.cpp
@@ -204,7 +204,7 @@
 
     // Call the callbacks without holding the lock on the ExecutionQueue to avoid lock-inversion
     // issues when dealing with potential re-entrant callbacks.
-    for (auto task : tasks) {
+    for (const auto& task : tasks) {
         task();
     }
 
@@ -326,7 +326,7 @@
 
     // Call the callbacks without holding the lock on the ExecutionQueue to avoid lock-inversion
     // issues when dealing with potential re-entrant callbacks.
-    for (auto task : tasks) {
+    for (const auto& task : tasks) {
         task();
     }
 
diff --git a/src/dawn/native/Pipeline.cpp b/src/dawn/native/Pipeline.cpp
index 8bc35b8..3629c21 100644
--- a/src/dawn/native/Pipeline.cpp
+++ b/src/dawn/native/Pipeline.cpp
@@ -229,7 +229,7 @@
     if (numUninitializedConstants > 0) [[unlikely]] {
         std::string uninitializedConstantsArray;
         bool isFirst = true;
-        for (std::string identifier : metadata.uninitializedOverrides) {
+        for (const std::string& identifier : metadata.uninitializedOverrides) {
             if (stageInitializedConstantIdentifiers.contains(identifier)) {
                 continue;
             }
diff --git a/src/dawn/native/ResourceTable.cpp b/src/dawn/native/ResourceTable.cpp
index e2af019..a832682 100644
--- a/src/dawn/native/ResourceTable.cpp
+++ b/src/dawn/native/ResourceTable.cpp
@@ -211,7 +211,7 @@
 void ResourceTableBase::DestroyImpl(DestroyReason reason) {
     DAWN_CHECK(!mDestroyed);
 
-    for (auto [texture, _] : mTextureState) {
+    for (const auto& [texture, _] : mTextureState) {
         texture->RemoveResourceTableUse(this);
     }