Merge branch 'backport-linker-prefix-crash' into linker-prefix-crash

This commit is contained in:
Brad King
2024-12-04 10:21:32 -05:00
2 changed files with 5 additions and 3 deletions

View File

@@ -548,8 +548,9 @@ std::vector<BT<std::string>>& cmGeneratorTarget::ResolvePrefixWrapper(
const std::string SHELL{ "SHELL:" };
const std::string PREFIX_SHELL = cmStrCat(PREFIX, SHELL);
for (auto entry = result.begin(); entry != result.end(); ++entry) {
for (auto entry = result.begin(); entry != result.end();) {
if (entry->Value.compare(0, PREFIX.length(), PREFIX) != 0) {
++entry;
continue;
}
@@ -594,10 +595,10 @@ std::vector<BT<std::string>>& cmGeneratorTarget::ResolvePrefixWrapper(
entry,
cmJoin(cmMakeRange(processedOptions.begin(), processedOptions.end()),
" "_s));
entry = std::next(result.begin(), index);
entry = std::next(result.begin(), index + 1);
} else {
result.insert(entry, processedOptions.begin(), processedOptions.end());
entry = std::next(result.begin(), index + processedOptions.size() - 1);
entry = std::next(result.begin(), index + processedOptions.size());
}
}
return result;

View File

@@ -26,6 +26,7 @@ endfunction()
# Use LINKER alone
add_test_library(linker)
target_link_options(linker PRIVATE "LINKER:-foo,bar")
target_link_options(linker PRIVATE "LINKER:") # empty
# Use LINKER with SHELL
add_test_library(linker_shell)