This revision was automatically updated to reflect the committed changes.
Closed by commit rC324113: [Tooling] Returns non-zero status code when files
are skipped. (authored by ioeric, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D42361?vs=132624&id=132626#toc
Repository:
rL LLVM
https://reviews.llvm.org/D42361
Files:
include/clang/Tooling/Tooling.h
lib/Tooling/Tooling.cpp
Index: include/clang/Tooling/Tooling.h
===================================================================
--- include/clang/Tooling/Tooling.h
+++ include/clang/Tooling/Tooling.h
@@ -330,6 +330,9 @@
/// Runs an action over all files specified in the command line.
///
/// \param Action Tool action.
+ ///
+ /// \returns 0 on success; 1 if any error occured; 2 if there is no error but
+ /// some files are skipped due to missing compile commands.
int run(ToolAction *Action);
/// \brief Create an AST for each file specified in the command line and
Index: lib/Tooling/Tooling.cpp
===================================================================
--- lib/Tooling/Tooling.cpp
+++ lib/Tooling/Tooling.cpp
@@ -388,6 +388,7 @@
llvm::MemoryBuffer::getMemBuffer(MappedFile.second));
bool ProcessingFailed = false;
+ bool FileSkipped = false;
for (const auto &SourcePath : SourcePaths) {
std::string File(getAbsolutePath(SourcePath));
@@ -401,12 +402,8 @@
std::vector<CompileCommand> CompileCommandsForFile =
Compilations.getCompileCommands(File);
if (CompileCommandsForFile.empty()) {
- // FIXME: There are two use cases here: doing a fuzzy
- // "find . -name '*.cc' |xargs tool" match, where as a user I don't care
- // about the .cc files that were not found, and the use case where I
- // specify all files I want to run over explicitly, where this should
- // be an error. We'll want to add an option for this.
llvm::errs() << "Skipping " << File << ". Compile command not found.\n";
+ FileSkipped = true;
continue;
}
for (CompileCommand &CompileCommand : CompileCommandsForFile) {
@@ -466,7 +463,7 @@
Twine(InitialDirectory) + "\n!");
}
}
- return ProcessingFailed ? 1 : 0;
+ return ProcessingFailed ? 1 : (FileSkipped ? 2 : 0);
}
namespace {
Index: include/clang/Tooling/Tooling.h
===================================================================
--- include/clang/Tooling/Tooling.h
+++ include/clang/Tooling/Tooling.h
@@ -330,6 +330,9 @@
/// Runs an action over all files specified in the command line.
///
/// \param Action Tool action.
+ ///
+ /// \returns 0 on success; 1 if any error occured; 2 if there is no error but
+ /// some files are skipped due to missing compile commands.
int run(ToolAction *Action);
/// \brief Create an AST for each file specified in the command line and
Index: lib/Tooling/Tooling.cpp
===================================================================
--- lib/Tooling/Tooling.cpp
+++ lib/Tooling/Tooling.cpp
@@ -388,6 +388,7 @@
llvm::MemoryBuffer::getMemBuffer(MappedFile.second));
bool ProcessingFailed = false;
+ bool FileSkipped = false;
for (const auto &SourcePath : SourcePaths) {
std::string File(getAbsolutePath(SourcePath));
@@ -401,12 +402,8 @@
std::vector<CompileCommand> CompileCommandsForFile =
Compilations.getCompileCommands(File);
if (CompileCommandsForFile.empty()) {
- // FIXME: There are two use cases here: doing a fuzzy
- // "find . -name '*.cc' |xargs tool" match, where as a user I don't care
- // about the .cc files that were not found, and the use case where I
- // specify all files I want to run over explicitly, where this should
- // be an error. We'll want to add an option for this.
llvm::errs() << "Skipping " << File << ". Compile command not found.\n";
+ FileSkipped = true;
continue;
}
for (CompileCommand &CompileCommand : CompileCommandsForFile) {
@@ -466,7 +463,7 @@
Twine(InitialDirectory) + "\n!");
}
}
- return ProcessingFailed ? 1 : 0;
+ return ProcessingFailed ? 1 : (FileSkipped ? 2 : 0);
}
namespace {
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits