[PATCH] D40409: [Tooling] Acknowledge that many CompilationDatabases don't support enumeration.

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 24 04:11:35 PST 2017


sammccall added inline comments.


================
Comment at: include/clang/Tooling/CompilationDatabase.h:122
+  /// can enumerate their source files.
+  virtual std::vector<std::string> getAllFiles() const { return {}; }
 
----------------
grandinj wrote:
> I know very little about LLVM's standards, so ignore me if I'm wrong, but shouldn't this be returning a pair of (begin,end) iterators rather than potentially a copy of a very large array of strings?
> 
> And shouldn't it be returning an iteration over StringRef rather then std::string, which will require copying the actual data?
You might well be right. But this is an existing interface designed as an extension point for out-of-tree build systems. I'd rather not break them unless we have evidence of an actual performance problem.
(Note my change here is backwards compatible and doesn't change the signature)


https://reviews.llvm.org/D40409





More information about the cfe-commits mailing list