diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-12-12 22:39:36 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-12-12 22:39:36 +0000 |
commit | 9c728dc4d8da89c73fcae74c9e72d7a83ffd7b6d (patch) | |
tree | e89a3acd2ddb4a993e1d6bac53c05628b24f4f2b /Basic/SourceLocation.cpp | |
parent | 5e71124dabe8017f17ce8996e4161a202694e3e6 (diff) |
TargetInfo no longer includes a reference to SourceManager.
Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation.
Added many utility methods to FullSourceLoc to provide shorthand for:
FullLoc.getManager().someMethod(FullLoc.getLocation());
instead we have:
FullLoc.someMethod();
Modified TextDiagnostics (and related classes) to use this short-hand.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44957 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Basic/SourceLocation.cpp')
-rw-r--r-- | Basic/SourceLocation.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Basic/SourceLocation.cpp b/Basic/SourceLocation.cpp index 75b4a99d45..d7f34567fb 100644 --- a/Basic/SourceLocation.cpp +++ b/Basic/SourceLocation.cpp @@ -8,10 +8,12 @@ //===----------------------------------------------------------------------===// // // This file defines serialization methods for the SourceLocation class. +// This file defines accessor methods for the FullSourceLoc class. // //===----------------------------------------------------------------------===// #include "clang/Basic/SourceLocation.h" +#include "clang/Basic/SourceManager.h" #include "llvm/Bitcode/Serialize.h" #include "llvm/Bitcode/Deserialize.h" @@ -35,3 +37,43 @@ SourceRange SourceRange::ReadVal(llvm::Deserializer& D) { SourceLocation B = SourceLocation::ReadVal(D); return SourceRange(A,B); } + +FullSourceLoc FullSourceLoc::getLogicalLoc() { + assert (isValid()); + return FullSourceLoc(SrcMgr->getLogicalLoc(Loc),*SrcMgr); +} + +FullSourceLoc FullSourceLoc::getIncludeLoc() { + assert (isValid()); + return FullSourceLoc(SrcMgr->getIncludeLoc(Loc),*SrcMgr); +} + +unsigned FullSourceLoc::getLineNumber() { + assert (isValid()); + return SrcMgr->getLineNumber(Loc); +} + +unsigned FullSourceLoc::getColumnNumber() { + assert (isValid()); + return SrcMgr->getColumnNumber(Loc); +} + +const char* FullSourceLoc::getSourceName() const { + assert (isValid()); + return SrcMgr->getSourceName(Loc); +} + +const FileEntry* FullSourceLoc::getFileEntryForLoc() const { + assert (isValid()); + return SrcMgr->getFileEntryForLoc(Loc); +} + +const char * FullSourceLoc::getCharacterData() const { + assert (isValid()); + return SrcMgr->getCharacterData(Loc); +} + +const llvm::MemoryBuffer* FullSourceLoc::getBuffer() const { + assert (isValid()); + return SrcMgr->getBuffer(Loc.getFileID()); +} |