Merge pull request #8108 from google/benvanik-vm-yield

Preparing for VM coroutine yields via `vm.yield`.
diff --git a/llvm-external-projects/iree-compiler-api/python/IREECTransforms.cpp b/llvm-external-projects/iree-compiler-api/python/IREECTransforms.cpp
index c7c1d7a..74029b1 100644
--- a/llvm-external-projects/iree-compiler-api/python/IREECTransforms.cpp
+++ b/llvm-external-projects/iree-compiler-api/python/IREECTransforms.cpp
@@ -60,7 +60,10 @@
   std::vector<const char *> cArgs;
   for (auto &argObject : args) {
     allocedArgs.push_back(py::cast<std::string>(argObject));
-    cArgs.push_back(allocedArgs.back().c_str());
+  }
+  // Can only get c_str() after finished mutating the vector.
+  for (auto &argStr : allocedArgs) {
+    cArgs.push_back(argStr.c_str());
   }
 
   std::string errorMessage;