зеркало из https://github.com/microsoft/clang.git
when code completing inside a C-style block comment, don't emit errors about
a missing */ since we truncated the file. This fixes rdar://7948776 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103913 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
79bc57c074
Коммит
150fcd5dcb
|
@ -1141,7 +1141,8 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr) {
|
|||
unsigned char C = getCharAndSize(CurPtr, CharSize);
|
||||
CurPtr += CharSize;
|
||||
if (C == 0 && CurPtr == BufferEnd+1) {
|
||||
if (!isLexingRawMode())
|
||||
if (!isLexingRawMode() &&
|
||||
!PP->isCodeCompletionFile(FileLoc))
|
||||
Diag(BufferPtr, diag::err_unterminated_block_comment);
|
||||
--CurPtr;
|
||||
|
||||
|
@ -1224,7 +1225,7 @@ bool Lexer::SkipBlockComment(Token &Result, const char *CurPtr) {
|
|||
Diag(CurPtr-1, diag::warn_nested_block_comment);
|
||||
}
|
||||
} else if (C == 0 && CurPtr == BufferEnd+1) {
|
||||
if (!isLexingRawMode())
|
||||
if (!isLexingRawMode() && !PP->isCodeCompletionFile(FileLoc))
|
||||
Diag(BufferPtr, diag::err_unterminated_block_comment);
|
||||
// Note: the user probably forgot a */. We could continue immediately
|
||||
// after the /*, but this would involve lexing a lot of what really is the
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
struct
|
||||
|
||||
/* foo */
|
||||
|
||||
// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s.h:4:8 -o - %s | FileCheck -check-prefix=CC1 %s
|
||||
// CHECK-CC1: X
|
||||
// CHECK-CC1-NEXT: Y
|
||||
|
@ -9,3 +11,8 @@ struct
|
|||
// CHECK-CC2: X
|
||||
// CHECK-CC2: Xa
|
||||
// CHECK-CC2: Y
|
||||
|
||||
// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:5:3 -o - %s | FileCheck -check-prefix=CC3 %s
|
||||
// CHECK-CC3: X
|
||||
// CHECK-CC3: Xa
|
||||
// CHECK-CC3: Y
|
||||
|
|
Загрузка…
Ссылка в новой задаче