From ac504561cd888455a48bf85d21ada20a932ebd94 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Sat, 22 Dec 2012 04:48:08 +0000 Subject: [PATCH] [libclang] Don't try to translate diagnostics from the precompiled preamble to the code-completion results, the SourceManager state may be slightly different when code-completing. And we don't even care for diagnostics when code-completing, anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170979 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Frontend/ASTUnit.cpp | 11 ----------- test/Index/complete-driver-errors.c | 24 ------------------------ 2 files changed, 35 deletions(-) delete mode 100644 test/Index/complete-driver-errors.c diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp index 807dcc8729..19d274db26 100644 --- a/lib/Frontend/ASTUnit.cpp +++ b/lib/Frontend/ASTUnit.cpp @@ -2435,9 +2435,6 @@ void ASTUnit::CodeComplete(StringRef File, unsigned Line, unsigned Column, // If the main file has been overridden due to the use of a preamble, // make that override happen and introduce the preamble. - StoredDiagnostics.insert(StoredDiagnostics.end(), - stored_diag_begin(), - stored_diag_afterDriver_begin()); if (OverrideMainBuffer) { PreprocessorOpts.addRemappedFile(OriginalSourceFile, OverrideMainBuffer); PreprocessorOpts.PrecompiledPreambleBytes.first = Preamble.size(); @@ -2459,17 +2456,9 @@ void ASTUnit::CodeComplete(StringRef File, unsigned Line, unsigned Column, OwningPtr Act; Act.reset(new SyntaxOnlyAction); if (Act->BeginSourceFile(*Clang.get(), Clang->getFrontendOpts().Inputs[0])) { - if (OverrideMainBuffer) { - std::string ModName = getPreambleFile(this); - TranslateStoredDiagnostics(Clang->getModuleManager(), ModName, - getSourceManager(), PreambleDiagnostics, - StoredDiagnostics); - } Act->Execute(); Act->EndSourceFile(); } - - checkAndSanitizeDiags(StoredDiagnostics, getSourceManager()); } bool ASTUnit::Save(StringRef File) { diff --git a/test/Index/complete-driver-errors.c b/test/Index/complete-driver-errors.c deleted file mode 100644 index 566090c260..0000000000 --- a/test/Index/complete-driver-errors.c +++ /dev/null @@ -1,24 +0,0 @@ -int *blah = 1; - -int - -// CHECK-RESULTS: NotImplemented:{TypedText const} (40) -// CHECK-RESULTS: NotImplemented:{TypedText restrict} (40) -// CHECK-RESULTS: NotImplemented:{TypedText volatile} (40) -// CHECK-DIAGS: error: invalid value '' in '-std=' -// CHECK-DIAGS: complete-driver-errors.c:1:6:{1:13-1:14}: warning: incompatible integer to pointer conversion initializing 'int *' with an expression of type 'int' - -// Test driver errors with code completion -// RUN: c-index-test -code-completion-at=%s:4:1 -std= %s 2> %t | FileCheck -check-prefix=CHECK-RESULTS %s -// RUN: FileCheck -check-prefix=CHECK-DIAGS %s < %t - -// Test driver errors with parsing -// RUN: c-index-test -test-load-source all -std= %s 2> %t | FileCheck -check-prefix=CHECK-LOAD %s -// RUN: FileCheck -check-prefix=CHECK-DIAGS %s < %t -// CHECK-LOAD: complete-driver-errors.c:1:6: VarDecl=blah:1:6 - -// Test driver errors with code completion and precompiled preamble -// RUN: env CINDEXTEST_EDITING=1 c-index-test -code-completion-at=%s:4:1 -std= %s 2> %t | FileCheck -check-prefix=CHECK-RESULTS %s -// RUN: FileCheck -check-prefix=CHECK-DIAGS %s < %t -// RUN: env CINDEXTEST_EDITING=1 c-index-test -test-load-source all -std= %s 2> %t | FileCheck -check-prefix=CHECK-LOAD %s -// RUN: FileCheck -check-prefix=CHECK-DIAGS %s < %t -- 2.40.0