]> granicus.if.org Git - clang/commitdiff
Fix crash in libclang if code completion is used with unknown flags.
authorManuel Klimek <klimek@google.com>
Thu, 18 Jul 2013 14:23:12 +0000 (14:23 +0000)
committerManuel Klimek <klimek@google.com>
Thu, 18 Jul 2013 14:23:12 +0000 (14:23 +0000)
Use CaptureDroppedDiagnostics to make sure that there is a diagnostic
client installed when warning flags are parsed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186582 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/ASTUnit.cpp
test/Index/c-index-unsupported-warning-test.c [new file with mode: 0644]

index c1f6bc5bb0e7419675c622f806d81f44c628962d..9251fc0daa0f18ad71a0c8f54270811e6a558197 100644 (file)
@@ -2410,10 +2410,10 @@ void ASTUnit::CodeComplete(StringRef File, unsigned Line, unsigned Column,
     
   // Set up diagnostics, capturing any diagnostics produced.
   Clang->setDiagnostics(&Diag);
-  ProcessWarningOptions(Diag, CCInvocation->getDiagnosticOpts());
   CaptureDroppedDiagnostics Capture(true, 
                                     Clang->getDiagnostics(), 
                                     StoredDiagnostics);
+  ProcessWarningOptions(Diag, CCInvocation->getDiagnosticOpts());
   
   // Create the target instance.
   Clang->setTarget(TargetInfo::CreateTargetInfo(Clang->getDiagnostics(),
diff --git a/test/Index/c-index-unsupported-warning-test.c b/test/Index/c-index-unsupported-warning-test.c
new file mode 100644 (file)
index 0000000..82ed063
--- /dev/null
@@ -0,0 +1,3 @@
+// RUN: c-index-test -code-completion-at=%s:1:1 -Wunknown-foo-bar-warning -Werror %s
+
+void f();