Problem: The IWYU CI job analyzes src/ipc/libmultiprocess/ even though its results are thrown away. Every run prints IWYU suggestions for 14 libmultiprocess files in the non-enforced pass, applies them, and then reverts them with the git restore from #36112. The suggestions also disagree with what libmultiprocess's own IWYU CI reports (it runs with -Xiwyu --error and passes), because the two jobs use different IWYU versions and mapping files. libmultiprocess is the only subtree in this situation; leveldb, crc32c, minisketch and secp256k1 are already excluded from compile_commands.json with EXPORT_COMPILE_COMMANDS OFF. #35361 asked for subtrees not to be linted at all.
Solution: Filter SHARED_EXCLUDED_SUBTREES (from test/lint/lint_ignore_dirs.py) out of compile_commands.json at the start of the IWYU section of ci/test/03_test_script.sh, so subtree sources are neither analyzed nor edited. This is done in the CI script rather than in cmake so that only IWYU is affected: clang-tidy keeps running on libmultiprocess, and no list of subtree targets has to be maintained in cmake/libmultiprocess.cmake (that approach broke -DBUILD_TESTS=OFF in #35418 and was reverted in #35523). One-file change to the CI script.
Testing note: You can confirm this works by checking at IWYU CI logs and confirming that output like /home/runner/work/_temp/src/ipc/libmultiprocess/src/mp/gen.cpp should add these lines: no longer appears.