summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/Preprocessor.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2014-10-18 06:23:50 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2014-10-18 06:23:50 +0000
commitee301f941c4e4b02eff76cb1b8f2f10b88327619 (patch)
treee6e2b11a66c0fc8673ce78416e387975bc0311d4 /clang/lib/Lex/Preprocessor.cpp
parente62d682a27ce9addf40223430fe8228a793e889f (diff)
downloadbcm5719-llvm-ee301f941c4e4b02eff76cb1b8f2f10b88327619.tar.gz
bcm5719-llvm-ee301f941c4e4b02eff76cb1b8f2f10b88327619.zip
[libclang] If the code-completion point is inside the preamble, adjust the position at the beginning of the file after the preamble.
Otherwise we will not hit the code-completion point. llvm-svn: 220136
Diffstat (limited to 'clang/lib/Lex/Preprocessor.cpp')
-rw-r--r--clang/lib/Lex/Preprocessor.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/clang/lib/Lex/Preprocessor.cpp b/clang/lib/Lex/Preprocessor.cpp
index c15a6ab956a..5da54aea30f 100644
--- a/clang/lib/Lex/Preprocessor.cpp
+++ b/clang/lib/Lex/Preprocessor.cpp
@@ -384,6 +384,15 @@ bool Preprocessor::SetCodeCompletionPoint(const FileEntry *File,
}
Position += CompleteColumn - 1;
+
+ // If pointing inside the preamble, adjust the position at the beginning of
+ // the file after the preamble.
+ if (SkipMainFilePreamble.first &&
+ SourceMgr.getFileEntryForID(SourceMgr.getMainFileID()) == File) {
+ if (Position - Buffer->getBufferStart() < SkipMainFilePreamble.first)
+ Position = Buffer->getBufferStart() + SkipMainFilePreamble.first;
+ }
+
if (Position > Buffer->getBufferEnd())
Position = Buffer->getBufferEnd();
OpenPOWER on IntegriCloud