Add FullSourceLoc::getDecomposedLoc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66522 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Basic/SourceLocation.h b/include/clang/Basic/SourceLocation.h
index b5906e1..ba0bb6f 100644
--- a/include/clang/Basic/SourceLocation.h
+++ b/include/clang/Basic/SourceLocation.h
@@ -216,6 +216,11 @@
/// data for the specified FileID.
std::pair<const char*, const char*> getBufferData() const;
+ /// getDecomposedLoc - Decompose the specified location into a raw FileID +
+ /// Offset pair. The first element is the FileID, the second is the
+ /// offset from the start of the buffer of the location.
+ std::pair<FileID, unsigned> getDecomposedLoc() const;
+
bool isInSystemHeader() const;
/// Prints information about this FullSourceLoc to stderr. Useful for
diff --git a/lib/Basic/SourceLocation.cpp b/lib/Basic/SourceLocation.cpp
index fd90b5a..dc1dceb 100644
--- a/lib/Basic/SourceLocation.cpp
+++ b/lib/Basic/SourceLocation.cpp
@@ -142,3 +142,7 @@
const llvm::MemoryBuffer *Buf = getBuffer();
return std::make_pair(Buf->getBufferStart(), Buf->getBufferEnd());
}
+
+std::pair<FileID, unsigned> FullSourceLoc::getDecomposedLoc() const {
+ return SrcMgr->getDecomposedLoc(*this);
+}