From d427023c334fe03105d9359711a3df4d6f23b344 Mon Sep 17 00:00:00 2001
From: Daniel Dunbar <daniel@zuster.org>
Date: Tue, 20 Jan 2009 23:17:32 +0000
Subject: [PATCH] Add -analyze action to run static analyzer, instead of
 inferring from individual checker options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62634 91177308-0d34-0410-b5e6-96231b3b80d8
---
 Driver/clang.cpp                                   | 8 +++-----
 test/Analysis/CFDateGC.m                           | 2 +-
 test/Analysis/CFNumber.c                           | 2 +-
 test/Analysis/CFRetainRelease_NSAssertionHandler.m | 2 +-
 test/Analysis/CGColorSpace.c                       | 2 +-
 test/Analysis/CheckNSError.m                       | 2 +-
 test/Analysis/MissingDealloc.m                     | 2 +-
 test/Analysis/NSPanel.m                            | 2 +-
 test/Analysis/NSString.m                           | 2 +-
 test/Analysis/NSWindow.m                           | 2 +-
 test/Analysis/NoReturn.m                           | 4 ++--
 test/Analysis/ObjCProperties.m                     | 2 +-
 test/Analysis/ObjCRetSigs.m                        | 2 +-
 test/Analysis/PR2978.m                             | 2 +-
 test/Analysis/array-struct.c                       | 4 ++--
 test/Analysis/cfref_PR2519.c                       | 2 +-
 test/Analysis/cfref_rdar6080742.c                  | 2 +-
 test/Analysis/complex.c                            | 2 +-
 test/Analysis/conditional-op-missing-lhs.c         | 2 +-
 test/Analysis/dead-stores.c                        | 6 +++---
 test/Analysis/dead-stores.m                        | 2 +-
 test/Analysis/exercise-ps.c                        | 2 +-
 test/Analysis/fields.c                             | 4 ++--
 test/Analysis/func.c                               | 2 +-
 test/Analysis/misc-ps.m                            | 2 +-
 test/Analysis/no-exit-cfg.c                        | 2 +-
 test/Analysis/null-deref-ps.c                      | 4 ++--
 test/Analysis/outofbound.c                         | 2 +-
 test/Analysis/rdar-6442306-1.m                     | 4 ++--
 test/Analysis/refcnt_naming.m                      | 2 +-
 test/Analysis/retain-release.m                     | 2 +-
 test/Analysis/stack-addr-ps.c                      | 2 +-
 test/Analysis/uninit-msg-expr.m                    | 2 +-
 test/Analysis/uninit-ps-rdar6145427.m              | 2 +-
 test/Analysis/uninit-vals-ps-region.c              | 2 +-
 test/Analysis/uninit-vals-ps.c                     | 4 ++--
 test/Analysis/uninit-vals.c                        | 2 +-
 test/Analysis/uninit-vals.m                        | 2 +-
 test/Analysis/unused-ivars.m                       | 2 +-
 utils/ccc-analyzer                                 | 1 +
 40 files changed, 50 insertions(+), 51 deletions(-)

diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 741eddc3a45..747f7e164d6 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -107,6 +107,8 @@ ProgAction(llvm::cl::desc("Choose output type:"), llvm::cl::ZeroOrMore,
                         "Run preprocessor, emit preprocessed file"),
              clEnumValN(DumpRawTokens, "dump-raw-tokens",
                         "Lex file in raw mode and dump raw tokens"),
+             clEnumValN(RunAnalysis, "analyze",
+                        "Run static analysis engine"),
              clEnumValN(DumpTokens, "dump-tokens",
                         "Run preprocessor, dump internal rep of tokens"),
              clEnumValN(ParseNoop, "parse-noop",
@@ -1298,7 +1300,6 @@ static ASTConsumer* CreateASTConsumer(const std::string& InFile,
       return CreateBlockRewriter(InFile, OutputFile, Diag, LangOpts);
       
     case RunAnalysis:
-      assert (!AnalysisList.empty());
       return CreateAnalysisConsumer(&AnalysisList[0],
                                     &AnalysisList[0]+AnalysisList.size(),
                                     AnalysisStoreOpt, AnalysisDiagOpt,
@@ -1545,10 +1546,7 @@ int main(int argc, char **argv) {
     exit(1);
   }
   
-  // Are we invoking one or more source analyses?
-  if (!AnalysisList.empty() && ProgAction == ParseSyntaxOnly)
-    ProgAction = RunAnalysis;  
-  else if (!InheritanceViewCls.empty())  // C++ visualization?
+  if (!InheritanceViewCls.empty())  // C++ visualization?
     ProgAction = InheritanceView;
     
   llvm::OwningPtr<SourceManager> SourceMgr;
diff --git a/test/Analysis/CFDateGC.m b/test/Analysis/CFDateGC.m
index 04d2209a3cc..401cef4e940 100644
--- a/test/Analysis/CFDateGC.m
+++ b/test/Analysis/CFDateGC.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify -fobjc-gc %s
+// RUN: clang -analyze -checker-cfref -verify -fobjc-gc %s
 
 //===----------------------------------------------------------------------===//
 // The following code is reduced using delta-debugging from
diff --git a/test/Analysis/CFNumber.c b/test/Analysis/CFNumber.c
index 19a1ec07921..6daeb729c9f 100644
--- a/test/Analysis/CFNumber.c
+++ b/test/Analysis/CFNumber.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify -triple x86_64-apple-darwin9 %s
+// RUN: clang -analyze -checker-cfref -verify -triple x86_64-apple-darwin9 %s
 
 typedef signed long CFIndex;
 typedef const struct __CFAllocator * CFAllocatorRef;
diff --git a/test/Analysis/CFRetainRelease_NSAssertionHandler.m b/test/Analysis/CFRetainRelease_NSAssertionHandler.m
index b17a51a673c..13a2236518f 100644
--- a/test/Analysis/CFRetainRelease_NSAssertionHandler.m
+++ b/test/Analysis/CFRetainRelease_NSAssertionHandler.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 typedef struct objc_selector *SEL;
 typedef signed char BOOL;
diff --git a/test/Analysis/CGColorSpace.c b/test/Analysis/CGColorSpace.c
index 97bf27982cd..7dac73ca3a2 100644
--- a/test/Analysis/CGColorSpace.c
+++ b/test/Analysis/CGColorSpace.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 typedef struct CGColorSpace *CGColorSpaceRef;
 extern CGColorSpaceRef CGColorSpaceCreateDeviceRGB(void);
diff --git a/test/Analysis/CheckNSError.m b/test/Analysis/CheckNSError.m
index 241c68cd85b..7da12c04b89 100644
--- a/test/Analysis/CheckNSError.m
+++ b/test/Analysis/CheckNSError.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 typedef signed char BOOL;
 typedef int NSInteger;
diff --git a/test/Analysis/MissingDealloc.m b/test/Analysis/MissingDealloc.m
index e6df6f071b8..3b16aa3feab 100644
--- a/test/Analysis/MissingDealloc.m
+++ b/test/Analysis/MissingDealloc.m
@@ -1,4 +1,4 @@
-// RUN: clang -warn-objc-missing-dealloc '-DIBOutlet=__attribute__((iboutlet))' %s --verify
+// RUN: clang -analyze -warn-objc-missing-dealloc '-DIBOutlet=__attribute__((iboutlet))' %s --verify
 typedef signed char BOOL;
 @protocol NSObject  - (BOOL)isEqual:(id)object; @end
 @interface NSObject <NSObject> {}
diff --git a/test/Analysis/NSPanel.m b/test/Analysis/NSPanel.m
index a24818e19ed..8a64581b2ef 100644
--- a/test/Analysis/NSPanel.m
+++ b/test/Analysis/NSPanel.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 // BEGIN delta-debugging reduced header stuff
 
diff --git a/test/Analysis/NSString.m b/test/Analysis/NSString.m
index ccee61b2f71..af8909f838b 100644
--- a/test/Analysis/NSString.m
+++ b/test/Analysis/NSString.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 //===----------------------------------------------------------------------===//
 // The following code is reduced using delta-debugging from
diff --git a/test/Analysis/NSWindow.m b/test/Analysis/NSWindow.m
index 012b2ded229..f7202f55638 100644
--- a/test/Analysis/NSWindow.m
+++ b/test/Analysis/NSWindow.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -warn-dead-stores -verify %s
+// RUN: clang -analyze -checker-cfref -warn-dead-stores -verify %s
 
 // These declarations were reduced using Delta-Debugging from Foundation.h
 // on Mac OS X.  The test cases are below.
diff --git a/test/Analysis/NoReturn.m b/test/Analysis/NoReturn.m
index f67a673adb6..16870f8aa10 100644
--- a/test/Analysis/NoReturn.m
+++ b/test/Analysis/NoReturn.m
@@ -1,5 +1,5 @@
-// RUN: clang -checker-simple -verify %s &&
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-simple -verify %s &&
+// RUN: clang -analyze -checker-cfref -verify %s
 
 #include <stdarg.h>
 
diff --git a/test/Analysis/ObjCProperties.m b/test/Analysis/ObjCProperties.m
index f207475bd63..f2f18b57711 100644
--- a/test/Analysis/ObjCProperties.m
+++ b/test/Analysis/ObjCProperties.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple %s -verify
+// RUN: clang -analyze -checker-simple %s -verify
 
 // The point of this test cases is to exercise properties in the static
 // analyzer
diff --git a/test/Analysis/ObjCRetSigs.m b/test/Analysis/ObjCRetSigs.m
index 009f6c38080..2d1aa80d125 100644
--- a/test/Analysis/ObjCRetSigs.m
+++ b/test/Analysis/ObjCRetSigs.m
@@ -1,4 +1,4 @@
-// RUN: clang -warn-objc-methodsigs -verify %s
+// RUN: clang -analyze -warn-objc-methodsigs -verify %s
 
 #include <stdio.h>
 
diff --git a/test/Analysis/PR2978.m b/test/Analysis/PR2978.m
index 0b9ae233786..e2a031dd068 100644
--- a/test/Analysis/PR2978.m
+++ b/test/Analysis/PR2978.m
@@ -1,4 +1,4 @@
-// RUN: clang -warn-objc-missing-dealloc %s -verify
+// RUN: clang -analyze -warn-objc-missing-dealloc %s -verify
 
 // Tests for the checker which checks missing/extra ivar 'release' calls 
 // in dealloc.
diff --git a/test/Analysis/array-struct.c b/test/Analysis/array-struct.c
index 8f4bb044ba8..1d5e9448e92 100644
--- a/test/Analysis/array-struct.c
+++ b/test/Analysis/array-struct.c
@@ -1,5 +1,5 @@
-// RUN: clang -checker-simple -verify %s
-// DISABLE: clang -checker-simple -analyzer-store-region -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
+// DISABLE: clang -analyze -checker-simple -analyzer-store-region -verify %s
 
 struct s {
   int data;
diff --git a/test/Analysis/cfref_PR2519.c b/test/Analysis/cfref_PR2519.c
index aa429a6f7eb..22146fbf6dd 100644
--- a/test/Analysis/cfref_PR2519.c
+++ b/test/Analysis/cfref_PR2519.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 typedef unsigned char Boolean;
 typedef signed long CFIndex;
diff --git a/test/Analysis/cfref_rdar6080742.c b/test/Analysis/cfref_rdar6080742.c
index 28d7d15c666..1364e8f6e8f 100644
--- a/test/Analysis/cfref_rdar6080742.c
+++ b/test/Analysis/cfref_rdar6080742.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 // This test case was reported in <rdar:problem/6080742>.
 // It tests path-sensitivity with respect to '!(cfstring != 0)' (negation of inequality).
diff --git a/test/Analysis/complex.c b/test/Analysis/complex.c
index 0698d9cd8b6..22a239aace6 100644
--- a/test/Analysis/complex.c
+++ b/test/Analysis/complex.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
 
 #include <stdint.h>
 
diff --git a/test/Analysis/conditional-op-missing-lhs.c b/test/Analysis/conditional-op-missing-lhs.c
index 9fbb9f19875..8befc39854f 100644
--- a/test/Analysis/conditional-op-missing-lhs.c
+++ b/test/Analysis/conditional-op-missing-lhs.c
@@ -1,4 +1,4 @@
-// RUN: clang -warn-dead-stores -warn-uninit-values -verify %s
+// RUN: clang -analyze -warn-dead-stores -warn-uninit-values -verify %s
 
 void f1()
 {
diff --git a/test/Analysis/dead-stores.c b/test/Analysis/dead-stores.c
index 92dfdf712c5..c72bdcf2b45 100644
--- a/test/Analysis/dead-stores.c
+++ b/test/Analysis/dead-stores.c
@@ -1,6 +1,6 @@
-// RUN: clang -warn-dead-stores -verify %s &&
-// RUN: clang -checker-simple -warn-dead-stores -verify %s &&
-// RUN: clang -warn-dead-stores -checker-simple -verify %s
+// RUN: clang -analyze -warn-dead-stores -verify %s &&
+// RUN: clang -analyze -checker-simple -warn-dead-stores -verify %s &&
+// RUN: clang -analyze -warn-dead-stores -checker-simple -verify %s
 
 
 void f1() {
diff --git a/test/Analysis/dead-stores.m b/test/Analysis/dead-stores.m
index f58c2c135f6..ee948538858 100644
--- a/test/Analysis/dead-stores.m
+++ b/test/Analysis/dead-stores.m
@@ -1,4 +1,4 @@
-// RUN: clang -warn-dead-stores -verify %s
+// RUN: clang -analyze -warn-dead-stores -verify %s
 
 typedef signed char BOOL;
 typedef unsigned int NSUInteger;
diff --git a/test/Analysis/exercise-ps.c b/test/Analysis/exercise-ps.c
index 0d5af4bcde2..f561912d21a 100644
--- a/test/Analysis/exercise-ps.c
+++ b/test/Analysis/exercise-ps.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
 //
 // Just exercise the analyzer (no assertions).
 
diff --git a/test/Analysis/fields.c b/test/Analysis/fields.c
index 72de12c4dcc..defa19ead99 100644
--- a/test/Analysis/fields.c
+++ b/test/Analysis/fields.c
@@ -1,5 +1,5 @@
-// RUN: clang -checker-cfref %s -verify &&
-// RUN: clang -checker-simple %s -verify
+// RUN: clang -analyze -checker-cfref %s -verify &&
+// RUN: clang -analyze -checker-simple %s -verify
 
 unsigned foo();
 typedef struct bf { unsigned x:2; } bf;
diff --git a/test/Analysis/func.c b/test/Analysis/func.c
index 49824c3ca65..53c4432a4d0 100644
--- a/test/Analysis/func.c
+++ b/test/Analysis/func.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
 
 void f(void) {
   void (*p)(void);
diff --git a/test/Analysis/misc-ps.m b/test/Analysis/misc-ps.m
index 5fccf5724e9..f9f1bdd4513 100644
--- a/test/Analysis/misc-ps.m
+++ b/test/Analysis/misc-ps.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref --verify -fblocks %s
+// RUN: clang -analyze -checker-cfref --verify -fblocks %s
 
 // Reduced test case from crash in <rdar://problem/6253157>
 @class NSObject;
diff --git a/test/Analysis/no-exit-cfg.c b/test/Analysis/no-exit-cfg.c
index b61abf548f0..60637a1916e 100644
--- a/test/Analysis/no-exit-cfg.c
+++ b/test/Analysis/no-exit-cfg.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 // This is a test case for the issue reported in PR 2819:
 //  http://llvm.org/bugs/show_bug.cgi?id=2819
diff --git a/test/Analysis/null-deref-ps.c b/test/Analysis/null-deref-ps.c
index 5092e82e418..18884c12aea 100644
--- a/test/Analysis/null-deref-ps.c
+++ b/test/Analysis/null-deref-ps.c
@@ -1,5 +1,5 @@
-// RUN: clang -std=gnu99 -checker-simple -verify %s &&
-// RUN: clang -std=gnu99 -checker-simple -analyzer-store-region -analyzer-purge-dead=false -verify %s
+// RUN: clang -analyze -std=gnu99 -checker-simple -verify %s &&
+// RUN: clang -analyze -std=gnu99 -checker-simple -analyzer-store-region -analyzer-purge-dead=false -verify %s
 
 #include<stdint.h>
 #include <assert.h>
diff --git a/test/Analysis/outofbound.c b/test/Analysis/outofbound.c
index 6e6e8f033b5..ab9c0cfa4c8 100644
--- a/test/Analysis/outofbound.c
+++ b/test/Analysis/outofbound.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple -analyzer-store-region -verify %s
+// RUN: clang -analyze -checker-simple -analyzer-store-region -verify %s
 
 char f1() {
   char* s = "abcd";
diff --git a/test/Analysis/rdar-6442306-1.m b/test/Analysis/rdar-6442306-1.m
index 2bc5c5c75f4..ea8d9baf6e6 100644
--- a/test/Analysis/rdar-6442306-1.m
+++ b/test/Analysis/rdar-6442306-1.m
@@ -1,5 +1,5 @@
-// RUN: clang -checker-cfref %s --analyzer-store-basic -verify
-// DISABLE: clang -checker-cfref %s --analyzer-store-region -verify
+// RUN: clang -analyze -checker-cfref %s --analyzer-store-basic -verify
+// DISABLE: clang -analyze -checker-cfref %s --analyzer-store-region -verify
 
 typedef int bar_return_t;
 typedef struct {
diff --git a/test/Analysis/refcnt_naming.m b/test/Analysis/refcnt_naming.m
index 1390cdd73d0..3c86853b47e 100644
--- a/test/Analysis/refcnt_naming.m
+++ b/test/Analysis/refcnt_naming.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 typedef const struct __CFString * CFStringRef;
 typedef const struct __CFAllocator * CFAllocatorRef;
diff --git a/test/Analysis/retain-release.m b/test/Analysis/retain-release.m
index bf833bf2aca..ec40a9a0f79 100644
--- a/test/Analysis/retain-release.m
+++ b/test/Analysis/retain-release.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 //===----------------------------------------------------------------------===//
 // The following code is reduced using delta-debugging from
diff --git a/test/Analysis/stack-addr-ps.c b/test/Analysis/stack-addr-ps.c
index 58687f36c70..57ce7dc8850 100644
--- a/test/Analysis/stack-addr-ps.c
+++ b/test/Analysis/stack-addr-ps.c
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
 
 #include <stdlib.h>
 #include <alloca.h>
diff --git a/test/Analysis/uninit-msg-expr.m b/test/Analysis/uninit-msg-expr.m
index 10b98373142..3bceca0e6c3 100644
--- a/test/Analysis/uninit-msg-expr.m
+++ b/test/Analysis/uninit-msg-expr.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-simple -verify %s
+// RUN: clang -analyze -checker-simple -verify %s
 
 //===----------------------------------------------------------------------===//
 // The following code is reduced using delta-debugging from
diff --git a/test/Analysis/uninit-ps-rdar6145427.m b/test/Analysis/uninit-ps-rdar6145427.m
index b24cbaf6570..530139da932 100644
--- a/test/Analysis/uninit-ps-rdar6145427.m
+++ b/test/Analysis/uninit-ps-rdar6145427.m
@@ -1,4 +1,4 @@
-// RUN: clang -verify -checker-cfref %s
+// RUN: clang -analyze -verify -checker-cfref %s
 
 // Delta-Debugging reduced preamble.
 typedef signed char BOOL;
diff --git a/test/Analysis/uninit-vals-ps-region.c b/test/Analysis/uninit-vals-ps-region.c
index 96da8b0935a..830e32ad8fa 100644
--- a/test/Analysis/uninit-vals-ps-region.c
+++ b/test/Analysis/uninit-vals-ps-region.c
@@ -1,4 +1,4 @@
-// DISABLE: clang -checker-simple -analyzer-store-region -verify %s
+// DISABLE: clang -analyze -checker-simple -analyzer-store-region -verify %s
 
 struct s {
   int data;
diff --git a/test/Analysis/uninit-vals-ps.c b/test/Analysis/uninit-vals-ps.c
index b8600009299..96963e4fff4 100644
--- a/test/Analysis/uninit-vals-ps.c
+++ b/test/Analysis/uninit-vals-ps.c
@@ -1,5 +1,5 @@
-// RUN: clang -checker-cfref -verify %s &&
-// RUN: clang -checker-cfref -analyzer-store-region -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s &&
+// RUN: clang -analyze -checker-cfref -analyzer-store-region -verify %s
 
 struct FPRec {
   void (*my_func)(int * x);  
diff --git a/test/Analysis/uninit-vals.c b/test/Analysis/uninit-vals.c
index fa6d0fc481b..a7f5733dc41 100644
--- a/test/Analysis/uninit-vals.c
+++ b/test/Analysis/uninit-vals.c
@@ -1,4 +1,4 @@
-// RUN: clang -warn-uninit-values -verify %s
+// RUN: clang -analyze -warn-uninit-values -verify %s
 
 int f1() {
   int x;
diff --git a/test/Analysis/uninit-vals.m b/test/Analysis/uninit-vals.m
index 74aa6672027..f7a7df766e5 100644
--- a/test/Analysis/uninit-vals.m
+++ b/test/Analysis/uninit-vals.m
@@ -1,4 +1,4 @@
-// RUN: clang -checker-cfref -verify %s
+// RUN: clang -analyze -checker-cfref -verify %s
 
 typedef unsigned int NSUInteger;
 
diff --git a/test/Analysis/unused-ivars.m b/test/Analysis/unused-ivars.m
index dd6d69e597c..f1568dacc18 100644
--- a/test/Analysis/unused-ivars.m
+++ b/test/Analysis/unused-ivars.m
@@ -1,4 +1,4 @@
-// RUN: clang -warn-objc-unused-ivars %s -verify
+// RUN: clang -analyze -warn-objc-unused-ivars %s -verify
 
 @interface A
 {
diff --git a/utils/ccc-analyzer b/utils/ccc-analyzer
index 14cbf54df10..71f840af51a 100755
--- a/utils/ccc-analyzer
+++ b/utils/ccc-analyzer
@@ -89,6 +89,7 @@ sub Analyze {
     push @CmdArgs,'-DIBOutlet=__attribute__((iboutlet))';
     push @CmdArgs,@$Args;
     @CmdArgsSansAnalyses = @CmdArgs;
+    push @CmdArgs,'--analyze';
     push @CmdArgs,(split /\s/,$Analyses);
     $RunAnalyzer = 1;
   }
-- 
GitLab