1234567891011121314151617181920212223242526272829303132 |
- //===-- AnalysisManager.cpp -------------------------------------*- C++ -*-===//
- //
- // The LLVM Compiler Infrastructure
- //
- // This file is distributed under the University of Illinois Open Source
- // License. See LICENSE.TXT for details.
- //
- //===----------------------------------------------------------------------===//
- #include "clang/StaticAnalyzer/PathSensitive/AnalysisManager.h"
- #include "clang/Index/Entity.h"
- #include "clang/Index/Indexer.h"
- using namespace clang;
- using namespace ento;
- AnalysisContext *
- AnalysisManager::getAnalysisContextInAnotherTU(const Decl *D) {
- idx::Entity Ent = idx::Entity::get(const_cast<Decl *>(D),
- Idxer->getProgram());
- FunctionDecl *FuncDef;
- idx::TranslationUnit *TU;
- llvm::tie(FuncDef, TU) = Idxer->getDefinitionFor(Ent);
- if (FuncDef == 0)
- return 0;
- // This AnalysisContext wraps function definition in another translation unit.
- // But it is still owned by the AnalysisManager associated with the current
- // translation unit.
- return AnaCtxMgr.getContext(FuncDef, TU);
- }
|