[cfe-commits] r103913 - in /cfe/trunk: lib/Lex/Lexer.cpp test/CodeCompletion/truncation.c
Chris Lattner
sabre at nondot.org
Sun May 16 12:54:05 PDT 2010
Author: lattner
Date: Sun May 16 14:54:05 2010
New Revision: 103913
URL: http://llvm.org/viewvc/llvm-project?rev=103913&view=rev
Log:
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
Modified:
cfe/trunk/lib/Lex/Lexer.cpp
cfe/trunk/test/CodeCompletion/truncation.c
Modified: cfe/trunk/lib/Lex/Lexer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Lexer.cpp?rev=103913&r1=103912&r2=103913&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/Lexer.cpp (original)
+++ cfe/trunk/lib/Lex/Lexer.cpp Sun May 16 14:54:05 2010
@@ -1141,7 +1141,8 @@
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 @@
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
Modified: cfe/trunk/test/CodeCompletion/truncation.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeCompletion/truncation.c?rev=103913&r1=103912&r2=103913&view=diff
==============================================================================
--- cfe/trunk/test/CodeCompletion/truncation.c (original)
+++ cfe/trunk/test/CodeCompletion/truncation.c Sun May 16 14:54:05 2010
@@ -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 @@
// 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
More information about the cfe-commits
mailing list