aboutsummaryrefslogtreecommitdiff
path: root/Basic/SourceLocation.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-12-12 22:39:36 +0000
committerTed Kremenek <kremenek@apple.com>2007-12-12 22:39:36 +0000
commit9c728dc4d8da89c73fcae74c9e72d7a83ffd7b6d (patch)
treee89a3acd2ddb4a993e1d6bac53c05628b24f4f2b /Basic/SourceLocation.cpp
parent5e71124dabe8017f17ce8996e4161a202694e3e6 (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.cpp42
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());
+}