forked from qt-creator/qt-creator
48 lines
1.2 KiB
Diff
48 lines
1.2 KiB
Diff
|
|
--- a/tools/clang/lib/Lex/PPCaching.cpp
|
||
|
|
+++ b/tools/clang/lib/Lex/PPCaching.cpp
|
||
|
|
@@ -105,8 +105,10 @@
|
||
|
|
}
|
||
|
|
|
||
|
|
void Preprocessor::EnterCachingLexMode() {
|
||
|
|
- if (InCachingLexMode())
|
||
|
|
+ if (InCachingLexMode()) {
|
||
|
|
+ assert(CurLexerKind == CLK_CachingLexer && "Unexpected lexer kind");
|
||
|
|
return;
|
||
|
|
+ }
|
||
|
|
|
||
|
|
PushIncludeMacroStack();
|
||
|
|
CurLexerKind = CLK_CachingLexer;
|
||
|
|
--- a/tools/clang/lib/Lex/PPLexerChange.cpp
|
||
|
|
+++ b/tools/clang/lib/Lex/PPLexerChange.cpp
|
||
|
|
@@ -444,6 +444,7 @@
|
||
|
|
}
|
||
|
|
|
||
|
|
CurPPLexer = nullptr;
|
||
|
|
+ recomputeCurLexerKind();
|
||
|
|
return true;
|
||
|
|
}
|
||
|
|
|
||
|
|
--- /dev/null
|
||
|
|
+++ b/tools/clang/test/CodeCompletion/Inputs/comments.h
|
||
|
|
@@ -0,0 +1,4 @@
|
||
|
|
+// PR32732
|
||
|
|
+struct B {
|
||
|
|
+ // <- code completion
|
||
|
|
+};
|
||
|
|
--- /dev/null
|
||
|
|
+++ b/tools/clang/test/CodeCompletion/comments.cpp
|
||
|
|
@@ -0,0 +1,13 @@
|
||
|
|
+// Note: the run lines follow their respective tests, since line/column
|
||
|
|
+// matter in this test.
|
||
|
|
+
|
||
|
|
+#include "comments.h"
|
||
|
|
+
|
||
|
|
+struct A {
|
||
|
|
+ // <- code completion
|
||
|
|
+ /* <- code completion */
|
||
|
|
+};
|
||
|
|
+
|
||
|
|
+// RUN: %clang_cc1 -I %S/Inputs -fsyntax-only -code-completion-at=%s:7:6 %s
|
||
|
|
+// RUN: %clang_cc1 -I %S/Inputs -fsyntax-only -code-completion-at=%s:8:6 %s
|
||
|
|
+// RUN: %clang_cc1 -I %S/Inputs -fsyntax-only -code-completion-at=%S/Inputs/comments.h:3:6 %s
|