[clang-tools-extra] ea9888b - [clangd] Respect `--sysroot` argument if it is set

David Goldman via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 9 08:03:54 PST 2020


Author: David Goldman
Date: 2020-01-09T11:02:58-05:00
New Revision: ea9888b8f6f20887647b77ebf5864d647fd2ea44

URL: https://github.com/llvm/llvm-project/commit/ea9888b8f6f20887647b77ebf5864d647fd2ea44
DIFF: https://github.com/llvm/llvm-project/commit/ea9888b8f6f20887647b77ebf5864d647fd2ea44.diff

LOG: [clangd] Respect `--sysroot` argument if it is set

Summary:
- Since `--sysroot` is a superset of the `-isysroot` argument, we
  shouldn't add the `-isysroot` if we detect a `--sysroot` flag.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D72415

Added: 
    

Modified: 
    clang-tools-extra/clangd/CompileCommands.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/CompileCommands.cpp b/clang-tools-extra/clangd/CompileCommands.cpp
index b1eca02813b3..f11b1236803c 100644
--- a/clang-tools-extra/clangd/CompileCommands.cpp
+++ b/clang-tools-extra/clangd/CompileCommands.cpp
@@ -155,7 +155,9 @@ void CommandMangler::adjust(std::vector<std::string> &Cmd) const {
   if (ResourceDir && !Has("-resource-dir"))
     Cmd.push_back(("-resource-dir=" + *ResourceDir));
 
-  if (Sysroot && !Has("-isysroot")) {
+  // Don't set `-isysroot` if it is already set or if `--sysroot` is set.
+  // `--sysroot` is a superset of the `-isysroot` argument.
+  if (Sysroot && !Has("-isysroot") && !Has("--sysroot")) {
     Cmd.push_back("-isysroot");
     Cmd.push_back(*Sysroot);
   }


        


More information about the cfe-commits mailing list