aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/SourceManager.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-04 05:33:01 +0000
committerChris Lattner <sabre@nondot.org>2009-02-04 05:33:01 +0000
commit6b3066780bda02e3117d71a18ca2f430ed1454af (patch)
tree3875355647e996c6983acb03cb56fe0b1d18fcbe /include/clang/Basic/SourceManager.h
parent9d79ebac47ffde6a1cb312f4c09b66b1b9a397fb (diff)
make getFileCharacteristic linetable aware. line markers that
play around with the 'is system header' bit now function correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63720 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/SourceManager.h')
-rw-r--r--include/clang/Basic/SourceManager.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index e24e623899..565cb0e17e 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -495,11 +495,15 @@ public:
unsigned getInstantiationLineNumber(SourceLocation Loc) const;
unsigned getSpellingLineNumber(SourceLocation Loc) const;
- // FIXME: This should handle #line.
- SrcMgr::CharacteristicKind getFileCharacteristic(SourceLocation Loc) const {
- FileID FID = getFileID(getSpellingLoc(Loc));
- return getSLocEntry(FID).getFile().getFileCharacteristic();
- }
+ /// getFileCharacteristic - return the file characteristic of the specified
+ /// source location, indicating whether this is a normal file, a system
+ /// header, or an "implicit extern C" system header.
+ ///
+ /// This state can be modified with flags on GNU linemarker directives like:
+ /// # 4 "foo.h" 3
+ /// which changes all source locations in the current file after that to be
+ /// considered to be from a system header.
+ SrcMgr::CharacteristicKind getFileCharacteristic(SourceLocation Loc) const;
/// getPresumedLoc - This method returns the "presumed" location of a
/// SourceLocation specifies. A "presumed location" can be modified by #line