aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-12-22 04:48:08 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-12-22 04:48:08 +0000
commitac504561cd888455a48bf85d21ada20a932ebd94 (patch)
tree71aa74c755a476e148dd80477302c55c1b9bcbf7
parent772e71310bd06a30b81db981cb5d9cc20120ff83 (diff)
[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
-rw-r--r--lib/Frontend/ASTUnit.cpp11
-rw-r--r--test/Index/complete-driver-errors.c24
2 files changed, 0 insertions, 35 deletions
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<SyntaxOnlyAction> 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