[PATCH] D82011: [clangd] Don't mangle workdir-relevant driver path in compile commands

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 17 11:18:47 PDT 2020


sammccall marked an inline comment as done.
sammccall added inline comments.


================
Comment at: clang-tools-extra/clangd/CompileCommands.cpp:141
+    // Let's hope it's not a symlink.
+    if (llvm::any_of(Driver,
+                     [](char C) { return llvm::sys::path::is_separator(C); }))
----------------
kadircet wrote:
> I believe it would be clearer if you put it below, into `else if (ClangPath)` part.
> 
> i.e.
> ```
> if (Absolute ...)
>   ..
> // If we couldn't find program and driver is just a filename, use clang dir
> // FIXME: Note that Driver can still be relative to workdir even if it doesn't have any path separators.
> // We should pass WD into here and try to make Driver absolute.
> else if(ClangPath && !hasPathSeparators(Driver))
>  ...
> ```
This would rely on the undocumented behaviour of findProgramByName with workdir-relative paths, which I think would be nice to avoid (for clarity to the reader if nothing else).
Doing (what looks like) a PATH search for a workdir-relative path is just conceptually wrong.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82011/new/

https://reviews.llvm.org/D82011





More information about the cfe-commits mailing list