This preserves --target and -target flags in the system includes extractor, which is needed for cross-compiling to, e.g. Android, since the target flags can influence the default include paths.
Note that, like isysroot (which is handled incorrectly above and elsewhere), the target flag doesn't fit cleanly into the ArgsToPreserve abstraction and does indeed have a different number of - in its = and non = forms. (ref) There are plenty of bugs in this file, but this is an incremental improvement.
For more context, please see https://github.com/clangd/clangd/issues/1378
Thanks for all you do, wonderful LLVM folks :)