Rollup merge of #131805 - aeubanks:flat, r=durin42

rustc_llvm: Fix flattened CLI args

Fixes string manipulation errors introduced in #130446.
This commit is contained in:
Matthias Krüger 2024-10-17 20:47:30 +02:00 committed by GitHub
commit db4cc00ed0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -490,13 +490,13 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine(
assert(ArgsCstrBuff[ArgsCstrBuffLen - 1] == '\0'); assert(ArgsCstrBuff[ArgsCstrBuffLen - 1] == '\0');
auto Arg0 = std::string(ArgsCstrBuff); auto Arg0 = std::string(ArgsCstrBuff);
buffer_offset = Arg0.size() + 1; buffer_offset = Arg0.size() + 1;
auto ArgsCppStr = auto ArgsCppStr = std::string(ArgsCstrBuff + buffer_offset,
std::string(ArgsCstrBuff + buffer_offset, ArgsCstrBuffLen - 1); ArgsCstrBuffLen - buffer_offset);
auto i = 0; auto i = 0;
while (i != std::string::npos) { while (i != std::string::npos) {
i = ArgsCppStr.find('\0', i + 1); i = ArgsCppStr.find('\0', i + 1);
if (i != std::string::npos) if (i != std::string::npos)
ArgsCppStr.replace(i, i + 1, " "); ArgsCppStr.replace(i, 1, " ");
} }
Options.MCOptions.Argv0 = Arg0; Options.MCOptions.Argv0 = Arg0;
Options.MCOptions.CommandlineArgs = ArgsCppStr; Options.MCOptions.CommandlineArgs = ArgsCppStr;