aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/SourceManager.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-27 07:57:44 +0000
committerChris Lattner <sabre@nondot.org>2009-01-27 07:57:44 +0000
commitb9c3f966b103f7cfe8e5e60007c4c8b38f7298eb (patch)
treed10a3e7c028ae1ae13bef1b61f7da4aff02ef207 /include/clang/Basic/SourceManager.h
parent52c29081281955d3db9e11d10573b2d38f709099 (diff)
Introduce a new PresumedLoc class to represent the concept of a location
as reported to the user and as manipulated by #line. This is what __FILE__, __INCLUDE_LEVEL__, diagnostics and other things should follow (but not dependency generation!). This patch also includes several cleanups along the way: - SourceLocation now has a dump method, and several other places that did similar things now use it. - I cleaned up some code in AnalysisConsumer, but it should probably be simplified further now that NamedDecl is better. - TextDiagnosticPrinter is now simplified and cleaned up a bit. This patch is a prerequisite for #line, but does not actually provide any #line functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63098 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/SourceManager.h')
-rw-r--r--include/clang/Basic/SourceManager.h20
1 files changed, 8 insertions, 12 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index dab3badea2..a63ef79037 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -404,14 +404,6 @@ public:
return SourceLocation::getFileLoc(FileOffset);
}
- /// getIncludeLoc - Return the location of the #include for the specified
- /// SourceLocation. If this is a macro expansion, this transparently figures
- /// out which file includes the file being expanded into.
- SourceLocation getIncludeLoc(SourceLocation ID) const {
- return getSLocEntry(getFileID(getInstantiationLoc(ID)))
- .getFile().getIncludeLoc();
- }
-
/// Given a SourceLocation object, return the instantiation location
/// referenced by the ID.
SourceLocation getInstantiationLoc(SourceLocation Loc) const {
@@ -518,10 +510,14 @@ public:
return getSLocEntry(FID).getFile().getFileCharacteristic();
}
- /// getSourceName - This method returns the name of the file or buffer that
- /// the SourceLocation specifies. This can be modified with #line directives,
- /// etc.
- const char *getSourceName(SourceLocation Loc) const;
+ /// getPresumedLoc - This method returns the "presumed" location of a
+ /// SourceLocation specifies. A "presumed location" can be modified by #line
+ /// or GNU line marker directives. This provides a view on the data that a
+ /// user should see in diagnostics, for example.
+ ///
+ /// Note that a presumed location is always given as the instantiation point
+ /// of an instantiation location, not at the spelling location.
+ PresumedLoc getPresumedLoc(SourceLocation Loc) const;