r345965 - [analyzer][CTU] Correctly signal in the function index generation tool if there was an error

Gabor Horvath via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 2 04:22:23 PDT 2018


Author: xazax
Date: Fri Nov  2 04:22:22 2018
New Revision: 345965

URL: http://llvm.org/viewvc/llvm-project?rev=345965&view=rev
Log:
[analyzer][CTU] Correctly signal in the function index generation tool if there was an error

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

Modified:
    cfe/trunk/tools/clang-func-mapping/CMakeLists.txt
    cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cpp

Modified: cfe/trunk/tools/clang-func-mapping/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-func-mapping/CMakeLists.txt?rev=345965&r1=345964&r2=345965&view=diff
==============================================================================
--- cfe/trunk/tools/clang-func-mapping/CMakeLists.txt (original)
+++ cfe/trunk/tools/clang-func-mapping/CMakeLists.txt Fri Nov  2 04:22:22 2018
@@ -1,8 +1,6 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
-  asmparser
   support
-  mc
   )
 
 add_clang_executable(clang-func-mapping
@@ -15,7 +13,6 @@ target_link_libraries(clang-func-mapping
   clangBasic
   clangCrossTU
   clangFrontend
-  clangIndex
   clangTooling
   )
 

Modified: cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cpp?rev=345965&r1=345964&r2=345965&view=diff
==============================================================================
--- cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cpp (original)
+++ cfe/trunk/tools/clang-func-mapping/ClangFnMapGen.cpp Fri Nov  2 04:22:22 2018
@@ -14,23 +14,16 @@
 
 #include "clang/AST/ASTConsumer.h"
 #include "clang/AST/ASTContext.h"
-#include "clang/AST/GlobalDecl.h"
-#include "clang/AST/Mangle.h"
-#include "clang/AST/StmtVisitor.h"
 #include "clang/Basic/SourceManager.h"
-#include "clang/Basic/TargetInfo.h"
 #include "clang/CrossTU/CrossTranslationUnit.h"
 #include "clang/Frontend/CompilerInstance.h"
 #include "clang/Frontend/FrontendActions.h"
-#include "clang/Index/USRGeneration.h"
 #include "clang/Tooling/CommonOptionsParser.h"
 #include "clang/Tooling/Tooling.h"
 #include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Path.h"
 #include "llvm/Support/Signals.h"
 #include <sstream>
 #include <string>
-#include <vector>
 
 using namespace llvm;
 using namespace clang;
@@ -41,21 +34,22 @@ static cl::OptionCategory ClangFnMapGenC
 
 class MapFunctionNamesConsumer : public ASTConsumer {
 public:
-  MapFunctionNamesConsumer(ASTContext &Context) : Ctx(Context) {}
+  MapFunctionNamesConsumer(ASTContext &Context)
+      : SM(Context.getSourceManager()) {}
 
   ~MapFunctionNamesConsumer() {
     // Flush results to standard output.
     llvm::outs() << createCrossTUIndexString(Index);
   }
 
-  virtual void HandleTranslationUnit(ASTContext &Ctx) {
+  void HandleTranslationUnit(ASTContext &Ctx) override {
     handleDecl(Ctx.getTranslationUnitDecl());
   }
 
 private:
   void handleDecl(const Decl *D);
 
-  ASTContext &Ctx;
+  SourceManager &SM;
   llvm::StringMap<std::string> Index;
   std::string CurrentFileName;
 };
@@ -67,8 +61,6 @@ void MapFunctionNamesConsumer::handleDec
   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
     if (FD->isThisDeclarationADefinition()) {
       if (const Stmt *Body = FD->getBody()) {
-        std::string LookupName = CrossTranslationUnitContext::getLookupName(FD);
-        const SourceManager &SM = Ctx.getSourceManager();
         if (CurrentFileName.empty()) {
           CurrentFileName =
               SM.getFileEntryForID(SM.getMainFileID())->tryGetRealPathName();
@@ -80,8 +72,11 @@ void MapFunctionNamesConsumer::handleDec
         case ExternalLinkage:
         case VisibleNoLinkage:
         case UniqueExternalLinkage:
-          if (SM.isInMainFile(Body->getBeginLoc()))
+          if (SM.isInMainFile(Body->getBeginLoc())) {
+            std::string LookupName =
+                CrossTranslationUnitContext::getLookupName(FD);
             Index[LookupName] = CurrentFileName;
+          }
           break;
         default:
           break;
@@ -99,9 +94,7 @@ class MapFunctionNamesAction : public AS
 protected:
   std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
                                                  llvm::StringRef) {
-    std::unique_ptr<ASTConsumer> PFC(
-        new MapFunctionNamesConsumer(CI.getASTContext()));
-    return PFC;
+    return llvm::make_unique<MapFunctionNamesConsumer>(CI.getASTContext());
   }
 };
 
@@ -120,6 +113,6 @@ int main(int argc, const char **argv) {
 
   ClangTool Tool(OptionsParser.getCompilations(),
                  OptionsParser.getSourcePathList());
-  Tool.run(newFrontendActionFactory<MapFunctionNamesAction>().get());
-  return 0;
+
+  return Tool.run(newFrontendActionFactory<MapFunctionNamesAction>().get());
 }




More information about the cfe-commits mailing list