diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-19 20:40:35 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-09-19 20:40:35 +0000 |
commit | 7c06d8666b3f81051787159d2d5c7ff84270ae10 (patch) | |
tree | ada454a1a3f1276706bc219f9d78810fcc2ddb8d /clang/lib/Basic/SourceManager.cpp | |
parent | 532c5196b016847ee4fcdb06bb6b1cbee774f3be (diff) | |
download | bcm5719-llvm-7c06d8666b3f81051787159d2d5c7ff84270ae10.tar.gz bcm5719-llvm-7c06d8666b3f81051787159d2d5c7ff84270ae10.zip |
[libclang] When getting a source location from a file:line:col triplet
check whether the requested location points inside the precompiled preamble,
in which case the returned source location will be a "loaded" one.
llvm-svn: 140060
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
-rw-r--r-- | clang/lib/Basic/SourceManager.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 38cc9946be1..68c98fe02c6 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -1324,7 +1324,8 @@ static llvm::Optional<ino_t> getActualFileInode(const FileEntry *File) { /// If the source file is included multiple times, the source location will /// be based upon an arbitrary inclusion. SourceLocation SourceManager::translateFileLineCol(const FileEntry *SourceFile, - unsigned Line, unsigned Col) { + unsigned Line, + unsigned Col) const { assert(SourceFile && "Null source file!"); assert(Line && Col && "Line and column should start from 1!"); @@ -1439,7 +1440,8 @@ SourceLocation SourceManager::translateFileLineCol(const FileEntry *SourceFile, /// \brief Get the source location in \arg FID for the given line:col. /// Returns null location if \arg FID is not a file SLocEntry. SourceLocation SourceManager::translateLineCol(FileID FID, - unsigned Line, unsigned Col) { + unsigned Line, + unsigned Col) const { if (FID.isInvalid()) return SourceLocation(); @@ -1496,7 +1498,8 @@ SourceLocation SourceManager::translateLineCol(FileID FID, /// 0 -> SourceLocation() /// 100 -> Expanded macro arg location /// 110 -> SourceLocation() -void SourceManager::computeMacroArgsCache(ContentCache *Content, FileID FID) { +void SourceManager::computeMacroArgsCache(ContentCache *Content, + FileID FID) const { assert(!Content->MacroArgsCache); assert(!FID.isInvalid()); @@ -1575,7 +1578,8 @@ void SourceManager::computeMacroArgsCache(ContentCache *Content, FileID FID) { /// ^ /// Passing a file location pointing at 'foo', will yield a macro location /// where 'foo' was expanded into. -SourceLocation SourceManager::getMacroArgExpandedLocation(SourceLocation Loc) { +SourceLocation +SourceManager::getMacroArgExpandedLocation(SourceLocation Loc) const { if (Loc.isInvalid() || !Loc.isFileID()) return Loc; |