sammccall added a comment. In D83621#2146750 <https://reviews.llvm.org/D83621#2146750>, @ArcsinX wrote:
> > - don't scan for equivalences if the set of candidates exceeds some size > > threshold (10 or so) > > - don't scan for equivalences if the node we'd scan under is the root > > After such fixes `JSONCompilationDatabase::getCompileCommands()` will return > other results than before in some cases. Can you elaborate on this - do you think there are reasonable cases where it will give the wrong answer? I can certainly imagine cases where this changes behaviour, e.g. project/foo.cc is a symlink to project/bar.cc, compile_commands contains an entry for foo.cc, we query for bar.cc. But I don't think this was ever really intended to handle arbitrary symlinks that change the names of files, and I do think this is OK to break. > For my experience InterpolatingCompilationDatabase works pretty well for > symlinks cases. This sounds reasonable but is a bit anecdotal - people use different build systems/source layouts, some of them use symlinks heavily and some not at all. InterpolatingCompilationDatabase often works well but it's very fuzzy/heuristic, and there are layouts where it really doesn't work well. (At the same time I feel uncomfortable because I'm not sure what would be sufficient evidence to remove the filematchtrie) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D83621/new/ https://reviews.llvm.org/D83621 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits