Users might not know about .git/info/exclude, which can be used to
ignore a directory locally (whereas changes to .gitignore would
themselves pollute git status). Explicitly note this in LLVM and
clang's getting started documentation.
I actually like the D57400 approach more, it's much easier to keep a list of known top level projects as a whitelist. There are many names people could give to such a build directory (out or build or b) not to mention any other cruft one may have there. (ie. I build a libc as part of toolchain build).