diff options
-rw-r--r-- | include/clang/Basic/SourceLocation.h | 5 | ||||
-rw-r--r-- | lib/Basic/SourceLocation.cpp | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/clang/Basic/SourceLocation.h b/include/clang/Basic/SourceLocation.h index b5906e1393..ba0bb6faac 100644 --- a/include/clang/Basic/SourceLocation.h +++ b/include/clang/Basic/SourceLocation.h @@ -216,6 +216,11 @@ public: /// 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 fd90b5a2ce..dc1dceb724 100644 --- a/lib/Basic/SourceLocation.cpp +++ b/lib/Basic/SourceLocation.cpp @@ -142,3 +142,7 @@ std::pair<const char*, const char*> FullSourceLoc::getBufferData() const { const llvm::MemoryBuffer *Buf = getBuffer(); return std::make_pair(Buf->getBufferStart(), Buf->getBufferEnd()); } + +std::pair<FileID, unsigned> FullSourceLoc::getDecomposedLoc() const { + return SrcMgr->getDecomposedLoc(*this); +} |