spirv-fuzz: Fix rvalue references (#3883)

Fixes #3659.
diff --git a/source/fuzz/data_descriptor.cpp b/source/fuzz/data_descriptor.cpp
index 86e5325..c467363 100644
--- a/source/fuzz/data_descriptor.cpp
+++ b/source/fuzz/data_descriptor.cpp
@@ -19,8 +19,8 @@
 namespace spvtools {
 namespace fuzz {
 
-protobufs::DataDescriptor MakeDataDescriptor(uint32_t object,
-                                             std::vector<uint32_t>&& indices) {
+protobufs::DataDescriptor MakeDataDescriptor(
+    uint32_t object, const std::vector<uint32_t>& indices) {
   protobufs::DataDescriptor result;
   result.set_object(object);
   for (auto index : indices) {
diff --git a/source/fuzz/data_descriptor.h b/source/fuzz/data_descriptor.h
index a87a0d9..f4b8e9c 100644
--- a/source/fuzz/data_descriptor.h
+++ b/source/fuzz/data_descriptor.h
@@ -25,8 +25,8 @@
 
 // Factory method to create a data descriptor message from an object id and a
 // list of indices.
-protobufs::DataDescriptor MakeDataDescriptor(uint32_t object,
-                                             std::vector<uint32_t>&& indices);
+protobufs::DataDescriptor MakeDataDescriptor(
+    uint32_t object, const std::vector<uint32_t>& indices);
 
 // Hash function for data descriptors.
 struct DataDescriptorHash {
diff --git a/source/fuzz/fact_manager/data_synonym_and_id_equation_facts.cpp b/source/fuzz/fact_manager/data_synonym_and_id_equation_facts.cpp
index de16472..f8b9712 100644
--- a/source/fuzz/fact_manager/data_synonym_and_id_equation_facts.cpp
+++ b/source/fuzz/fact_manager/data_synonym_and_id_equation_facts.cpp
@@ -405,8 +405,8 @@
         fuzzerutil::RepeatedFieldToVector(dd2.index());
     extended_indices2.push_back(i);
     AddDataSynonymFactRecursive(
-        MakeDataDescriptor(dd1.object(), std::move(extended_indices1)),
-        MakeDataDescriptor(dd2.object(), std::move(extended_indices2)));
+        MakeDataDescriptor(dd1.object(), extended_indices1),
+        MakeDataDescriptor(dd2.object(), extended_indices2));
 
     if (i < kCompositeElementBound - 1 || i == num_composite_elements - 1) {
       // We have not reached the bound yet, or have already skipped ahead to the
diff --git a/source/fuzz/fuzzer_pass_outline_functions.cpp b/source/fuzz/fuzzer_pass_outline_functions.cpp
index 3bd0a9f..4210125 100644
--- a/source/fuzz/fuzzer_pass_outline_functions.cpp
+++ b/source/fuzz/fuzzer_pass_outline_functions.cpp
@@ -107,8 +107,8 @@
         GetFuzzerContext()->GetFreshId(),
         /*new_caller_result_id*/ GetFuzzerContext()->GetFreshId(),
         /*new_callee_result_id*/ GetFuzzerContext()->GetFreshId(),
-        /*input_id_to_fresh_id*/ std::move(input_id_to_fresh_id),
-        /*output_id_to_fresh_id*/ std::move(output_id_to_fresh_id));
+        /*input_id_to_fresh_id*/ input_id_to_fresh_id,
+        /*output_id_to_fresh_id*/ output_id_to_fresh_id);
     MaybeApplyTransformation(transformation);
   }
 }
diff --git a/source/fuzz/transformation_composite_extract.cpp b/source/fuzz/transformation_composite_extract.cpp
index 641e6f0..bc8797d 100644
--- a/source/fuzz/transformation_composite_extract.cpp
+++ b/source/fuzz/transformation_composite_extract.cpp
@@ -29,7 +29,8 @@
 
 TransformationCompositeExtract::TransformationCompositeExtract(
     const protobufs::InstructionDescriptor& instruction_to_insert_before,
-    uint32_t fresh_id, uint32_t composite_id, std::vector<uint32_t>&& index) {
+    uint32_t fresh_id, uint32_t composite_id,
+    const std::vector<uint32_t>& index) {
   *message_.mutable_instruction_to_insert_before() =
       instruction_to_insert_before;
   message_.set_fresh_id(fresh_id);
@@ -121,7 +122,7 @@
       indices.push_back(an_index);
     }
     protobufs::DataDescriptor data_descriptor_for_extracted_element =
-        MakeDataDescriptor(message_.composite_id(), std::move(indices));
+        MakeDataDescriptor(message_.composite_id(), indices);
     protobufs::DataDescriptor data_descriptor_for_result_id =
         MakeDataDescriptor(message_.fresh_id(), {});
     transformation_context->GetFactManager()->AddFactDataSynonym(
diff --git a/source/fuzz/transformation_composite_extract.h b/source/fuzz/transformation_composite_extract.h
index 99172a6..de59bed 100644
--- a/source/fuzz/transformation_composite_extract.h
+++ b/source/fuzz/transformation_composite_extract.h
@@ -30,7 +30,8 @@
 
   TransformationCompositeExtract(
       const protobufs::InstructionDescriptor& instruction_to_insert_before,
-      uint32_t fresh_id, uint32_t composite_id, std::vector<uint32_t>&& index);
+      uint32_t fresh_id, uint32_t composite_id,
+      const std::vector<uint32_t>& index);
 
   // - |message_.fresh_id| must be available
   // - |message_.instruction_to_insert_before| must identify an instruction
diff --git a/source/fuzz/transformation_composite_insert.cpp b/source/fuzz/transformation_composite_insert.cpp
index 1d332ce..e08a09f 100644
--- a/source/fuzz/transformation_composite_insert.cpp
+++ b/source/fuzz/transformation_composite_insert.cpp
@@ -166,15 +166,9 @@
         continue;
       }
       current_index.push_back(i);
-      // TODO(https://github.com/KhronosGroup/SPIRV-Tools/issues/3659):
-      //       Google C++ guide restricts the use of r-value references.
-      //       https://google.github.io/styleguide/cppguide.html#Rvalue_references
-      //       Consider changing the signature of MakeDataDescriptor()
       transformation_context->GetFactManager()->AddFactDataSynonym(
-          MakeDataDescriptor(message_.fresh_id(),
-                             std::vector<uint32_t>(current_index)),
-          MakeDataDescriptor(message_.composite_id(),
-                             std::vector<uint32_t>(current_index)));
+          MakeDataDescriptor(message_.fresh_id(), current_index),
+          MakeDataDescriptor(message_.composite_id(), current_index));
       current_index.pop_back();
     }
     // Store the prefix of the |index|.
@@ -186,7 +180,7 @@
           message_.object_id())) {
     transformation_context->GetFactManager()->AddFactDataSynonym(
         MakeDataDescriptor(message_.object_id(), {}),
-        MakeDataDescriptor(message_.fresh_id(), std::vector<uint32_t>(index)));
+        MakeDataDescriptor(message_.fresh_id(), index));
   }
 }
 
diff --git a/source/fuzz/transformation_outline_function.cpp b/source/fuzz/transformation_outline_function.cpp
index a2cef7a..0eec50e 100644
--- a/source/fuzz/transformation_outline_function.cpp
+++ b/source/fuzz/transformation_outline_function.cpp
@@ -30,8 +30,8 @@
     uint32_t new_function_struct_return_type_id, uint32_t new_function_type_id,
     uint32_t new_function_id, uint32_t new_function_region_entry_block,
     uint32_t new_caller_result_id, uint32_t new_callee_result_id,
-    std::map<uint32_t, uint32_t>&& input_id_to_fresh_id,
-    std::map<uint32_t, uint32_t>&& output_id_to_fresh_id) {
+    const std::map<uint32_t, uint32_t>& input_id_to_fresh_id,
+    const std::map<uint32_t, uint32_t>& output_id_to_fresh_id) {
   message_.set_entry_block(entry_block);
   message_.set_exit_block(exit_block);
   message_.set_new_function_struct_return_type_id(
diff --git a/source/fuzz/transformation_outline_function.h b/source/fuzz/transformation_outline_function.h
index 6bc7d7e..be56695 100644
--- a/source/fuzz/transformation_outline_function.h
+++ b/source/fuzz/transformation_outline_function.h
@@ -38,8 +38,8 @@
       uint32_t new_function_type_id, uint32_t new_function_id,
       uint32_t new_function_region_entry_block, uint32_t new_caller_result_id,
       uint32_t new_callee_result_id,
-      std::map<uint32_t, uint32_t>&& input_id_to_fresh_id,
-      std::map<uint32_t, uint32_t>&& output_id_to_fresh_id);
+      const std::map<uint32_t, uint32_t>& input_id_to_fresh_id,
+      const std::map<uint32_t, uint32_t>& output_id_to_fresh_id);
 
   // - All the fresh ids occurring in the transformation must be distinct and
   //   fresh
diff --git a/test/fuzz/data_synonym_transformation_test.cpp b/test/fuzz/data_synonym_transformation_test.cpp
index 2345ff6..bbdc0de 100644
--- a/test/fuzz/data_synonym_transformation_test.cpp
+++ b/test/fuzz/data_synonym_transformation_test.cpp
@@ -28,14 +28,14 @@
 // number of transformations that relate to data synonyms.
 
 protobufs::Fact MakeSynonymFact(uint32_t first_id,
-                                std::vector<uint32_t> first_indices,
+                                const std::vector<uint32_t>& first_indices,
                                 uint32_t second_id,
-                                std::vector<uint32_t> second_indices) {
+                                const std::vector<uint32_t>& second_indices) {
   protobufs::FactDataSynonym data_synonym_fact;
   *data_synonym_fact.mutable_data1() =
-      MakeDataDescriptor(first_id, std::move(first_indices));
+      MakeDataDescriptor(first_id, first_indices);
   *data_synonym_fact.mutable_data2() =
-      MakeDataDescriptor(second_id, std::move(second_indices));
+      MakeDataDescriptor(second_id, second_indices);
   protobufs::Fact result;
   *result.mutable_data_synonym_fact() = data_synonym_fact;
   return result;