aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CrossTU
diff options
context:
space:
mode:
authorArtem Dergachev <artem.dergachev@gmail.com>2021-01-07 19:23:43 -0800
committerArtem Dergachev <artem.dergachev@gmail.com>2021-01-07 20:22:22 -0800
commit6b0ee02747ed22d41e175d15f27025183341e6f8 (patch)
tree45c1e33f7f171b603d1709b4cf692bea509b5a4d /clang/lib/CrossTU
parent2ff36e79291486b489ae26418daa1b123473b405 (diff)
downloadllvm-6b0ee02747ed22d41e175d15f27025183341e6f8.zip
llvm-6b0ee02747ed22d41e175d15f27025183341e6f8.tar.gz
llvm-6b0ee02747ed22d41e175d15f27025183341e6f8.tar.bz2
Revert "Revert "Revert "Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis.""""
This reverts commit b12f26733a4259c90e5f387aceb9f23c35e003b8. Fix dead include that looked like another missed circular dependency.
Diffstat (limited to 'clang/lib/CrossTU')
-rw-r--r--clang/lib/CrossTU/CrossTranslationUnit.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/clang/lib/CrossTU/CrossTranslationUnit.cpp b/clang/lib/CrossTU/CrossTranslationUnit.cpp
index e27779f..5ab5d6d 100644
--- a/clang/lib/CrossTU/CrossTranslationUnit.cpp
+++ b/clang/lib/CrossTU/CrossTranslationUnit.cpp
@@ -765,7 +765,7 @@ CrossTranslationUnitContext::getOrCreateASTImporter(ASTUnit *Unit) {
llvm::Optional<std::pair<SourceLocation, ASTUnit *>>
CrossTranslationUnitContext::getImportedFromSourceLocation(
- const clang::SourceLocation &ToLoc) const {
+ SourceLocation ToLoc) const {
const SourceManager &SM = Context.getSourceManager();
auto DecToLoc = SM.getDecomposedLoc(ToLoc);
@@ -781,5 +781,16 @@ CrossTranslationUnitContext::getImportedFromSourceLocation(
return std::make_pair(FromLoc, Unit);
}
+llvm::Optional<std::pair<SourceLocation, Preprocessor *>>
+CrossTranslationUnitContext::getImportedFromSourceLocationWithPreprocessor(
+ SourceLocation ToLoc) const {
+ if (llvm::Optional<std::pair<SourceLocation, ASTUnit *>> LocAndUnit =
+ getImportedFromSourceLocation(ToLoc)) {
+ return std::make_pair(LocAndUnit->first,
+ &LocAndUnit->second->getPreprocessor());
+ }
+ return None;
+}
+
} // namespace cross_tu
} // namespace clang