Fix iterator invalidation issue when building options. (#8103)
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;