forked from OSchip/llvm-project
[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. llvm-svn: 170979
This commit is contained in:
parent
9999f4f88b
commit
430a938fde
|
@ -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) {
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue