diff --git a/bindings/rust/src/rust_api.cc b/bindings/rust/src/rust_api.cc index 5efc5fac69..c85997e390 100644 --- a/bindings/rust/src/rust_api.cc +++ b/bindings/rust/src/rust_api.cc @@ -15,7 +15,14 @@ void RegisterBenchmark(rust::Str name, rust::Fn func) { } void Initialize(int* argc, size_t argv) { - ::benchmark::Initialize(argc, (char**)argv); + char** argv_ptr = reinterpret_cast(argv); + if (argc != nullptr && *argc > 0 && argv_ptr != nullptr && + argv_ptr[0] != nullptr) { + static std::string executable_name; + executable_name = argv_ptr[0]; + argv_ptr[0] = executable_name.data(); + } + ::benchmark::Initialize(argc, argv_ptr); } void SkipWithError(benchmark::State& state, rust::Str msg) {