r327322 - [Tooling] Clear the PreambleSrcLocCache when preamble is discarded during reparsing

Alex Lorenz via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 12 12:36:29 PDT 2018


Author: arphaman
Date: Mon Mar 12 12:36:29 2018
New Revision: 327322

URL: http://llvm.org/viewvc/llvm-project?rev=327322&view=rev
Log:
[Tooling] Clear the PreambleSrcLocCache when preamble is discarded during reparsing

This ensures that diagnostics are not remapped to incorrect preamble locations after
the second reparse with a remapped header file occurs.

rdar://37502480

Added:
    cfe/trunk/test/Index/Inputs/reparse-issue.h
    cfe/trunk/test/Index/Inputs/reparse-issue.h-0
    cfe/trunk/test/Index/Inputs/reparse-issue.h-1
    cfe/trunk/test/Index/reparsed-live-issue.cpp
Modified:
    cfe/trunk/lib/Frontend/ASTUnit.cpp

Modified: cfe/trunk/lib/Frontend/ASTUnit.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/ASTUnit.cpp?rev=327322&r1=327321&r2=327322&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/ASTUnit.cpp (original)
+++ cfe/trunk/lib/Frontend/ASTUnit.cpp Mon Mar 12 12:36:29 2018
@@ -1259,6 +1259,7 @@ ASTUnit::getMainBufferWithPrecompiledPre
       Preamble.reset();
       PreambleDiagnostics.clear();
       TopLevelDeclsInPreamble.clear();
+      PreambleSrcLocCache.clear();
       PreambleRebuildCounter = 1;
     }
   }

Added: cfe/trunk/test/Index/Inputs/reparse-issue.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/Inputs/reparse-issue.h?rev=327322&view=auto
==============================================================================
--- cfe/trunk/test/Index/Inputs/reparse-issue.h (added)
+++ cfe/trunk/test/Index/Inputs/reparse-issue.h Mon Mar 12 12:36:29 2018
@@ -0,0 +1,3 @@
+
+asdf;
+

Added: cfe/trunk/test/Index/Inputs/reparse-issue.h-0
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/Inputs/reparse-issue.h-0?rev=327322&view=auto
==============================================================================
--- cfe/trunk/test/Index/Inputs/reparse-issue.h-0 (added)
+++ cfe/trunk/test/Index/Inputs/reparse-issue.h-0 Mon Mar 12 12:36:29 2018
@@ -0,0 +1,4 @@
+//
+//
+asdf;
+

Added: cfe/trunk/test/Index/Inputs/reparse-issue.h-1
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/Inputs/reparse-issue.h-1?rev=327322&view=auto
==============================================================================
--- cfe/trunk/test/Index/Inputs/reparse-issue.h-1 (added)
+++ cfe/trunk/test/Index/Inputs/reparse-issue.h-1 Mon Mar 12 12:36:29 2018
@@ -0,0 +1,5 @@
+//
+//
+//
+asdf;
+

Added: cfe/trunk/test/Index/reparsed-live-issue.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/reparsed-live-issue.cpp?rev=327322&view=auto
==============================================================================
--- cfe/trunk/test/Index/reparsed-live-issue.cpp (added)
+++ cfe/trunk/test/Index/reparsed-live-issue.cpp Mon Mar 12 12:36:29 2018
@@ -0,0 +1,4 @@
+// RUN: CINDEXTEST_EDITING=1 LIBCLANG_DISABLE_CRASH_RECOVERY=1 c-index-test -test-load-source-reparse 2 none -remap-file-0=%S/Inputs/reparse-issue.h,%S/Inputs/reparse-issue.h-0 -remap-file-1=%S/Inputs/reparse-issue.h,%S/Inputs/reparse-issue.h-1 -- %s 2>&1 | FileCheck %s
+#include "Inputs/reparse-issue.h"
+
+// CHECK: reparse-issue.h:4:1:{1:1-1:1}: error: C++ requires a type specifier for all declarations




More information about the cfe-commits mailing list