7 ms·
Having worked with clang (and gcc) quite a bit, there are a number of good points the author makes. There are a lot of cool things llvm/clang has, but it feels
by HybridCurve 3y ago
Having worked with clang (and gcc) quite a bit, there are a number of good points the author makes. There are a lot of cool things llvm/clang has, but it feels like a lot of the tooling does not mesh together as well as it should and some things lack refinement.
My biggest gripe overall (since it could be fixed easily) is the compile_commands.json. It's used by a number of tools and is generally awkward, cumbersome, and has a handful of shortcomings. To fix these issues, I used the intercept-build system provided with LLVM to generate a more succinct build file in JSON format that abstracts certain options (like paths) and groups options commonly found together. The reason for this is that sometimes you might be generating llvm bitcode, building clang AST, running clang-analyze, or translating the build options to work with either compiling or linking with GCC or Clang. For many of these it helps to be able to alter options easily, which you cannot do with the compile_commands.json file alone.
There are a number of areas like this where clang would benefit greatly, without demanding an enormous amount of effort.