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