[PATCH] D22154: [clang-tidy] Pass absolute path to OptionsProvider::getOptions/getRawOptions.

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 11 00:54:30 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL275051: [clang-tidy] Pass absolute path to OptionsProvider::getOptions/getRawOptions. (authored by hokein).

Changed prior to commit:
  http://reviews.llvm.org/D22154?vs=63282&id=63469#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D22154

Files:
  clang-tools-extra/trunk/clang-tidy/ClangTidyOptions.cpp
  clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
  clang-tools-extra/trunk/test/clang-tidy/list-checks.cpp

Index: clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
+++ clang-tools-extra/trunk/clang-tidy/tool/ClangTidyMain.cpp
@@ -313,13 +313,19 @@
   if (!PathList.empty()) {
     FileName = PathList.front();
   }
-  ClangTidyOptions EffectiveOptions = OptionsProvider->getOptions(FileName);
+
+  SmallString<256> FilePath(FileName);
+  if (std::error_code EC = llvm::sys::fs::make_absolute(FilePath)) {
+    llvm::errs() << "Can't make absolute path from " << FileName << ": "
+                 << EC.message() << "\n";
+  }
+  ClangTidyOptions EffectiveOptions = OptionsProvider->getOptions(FilePath);
   std::vector<std::string> EnabledChecks = getCheckNames(EffectiveOptions);
 
   if (ExplainConfig) {
     //FIXME: Show other ClangTidyOptions' fields, like ExtraArg.
     std::vector<clang::tidy::ClangTidyOptionsProvider::OptionsSource>
-        RawOptions = OptionsProvider->getRawOptions(FileName);
+        RawOptions = OptionsProvider->getRawOptions(FilePath);
     for (const std::string &Check : EnabledChecks) {
       for (auto It = RawOptions.rbegin(); It != RawOptions.rend(); ++It) {
         if (It->first.Checks && GlobList(*It->first.Checks).contains(Check)) {
Index: clang-tools-extra/trunk/clang-tidy/ClangTidyOptions.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidyOptions.cpp
+++ clang-tools-extra/trunk/clang-tidy/ClangTidyOptions.cpp
@@ -218,15 +218,6 @@
 std::vector<OptionsSource>
 FileOptionsProvider::getRawOptions(StringRef FileName) {
   DEBUG(llvm::dbgs() << "Getting options for file " << FileName << "...\n");
-  SmallString<256> FilePath(FileName);
-
-  if (std::error_code EC = llvm::sys::fs::make_absolute(FilePath)) {
-    llvm::errs() << "Can't make absolute path from " << FileName << ": "
-                 << EC.message() << "\n";
-    // FIXME: Figure out what to do.
-  } else {
-    FileName = FilePath;
-  }
 
   std::vector<OptionsSource> RawOptions =
       DefaultOptionsProvider::getRawOptions(FileName);
Index: clang-tools-extra/trunk/test/clang-tidy/list-checks.cpp
===================================================================
--- clang-tools-extra/trunk/test/clang-tidy/list-checks.cpp
+++ clang-tools-extra/trunk/test/clang-tidy/list-checks.cpp
@@ -0,0 +1,5 @@
+// REQUIRES: shell
+// RUN: mkdir -p %T/clang-tidy/list-checks/
+// RUN: echo '{Checks: "-*,google-*"}' > %T/clang-tidy/.clang-tidy
+// RUN: cd %T/clang-tidy/list-checks
+// RUN: clang-tidy -list-checks | grep "^ *google-"


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22154.63469.patch
Type: text/x-patch
Size: 2652 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160711/c8fcc959/attachment.bin>


More information about the cfe-commits mailing list