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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits