Fixing silly build dependencies

There are some funny build order dependencies in Clang, like clangStaticAnalyzerCore depending on ClangARMNeon. How do I remove them? The CMakeLists.txt files are quite hard to understand.


The analyzer core depends on ClangARMNeon through its dependency on clangBasic. ClangARMNeon is the name of the CMake target that tablegens the ARMNeon builtins that are ultimately included in Basic/TargetBuiltins.h. The builtins for other targets use .def files directly, rather than tablegen, so they don’t show up as a target in CMake.

I don’t believe the static analyzer currently does any explicit checking of target-specific builtins, but as it does check target-independent builtins this wouldn’t be an unreasonable thing for the analyzer to do. Sema, for example, diagnoses some target-specific builtins in SemaChecking.cpp. Why do you think the dependency should be removed?