[analyzer] Teach scan-build how to pass -analyzer-config to xcodebuild.
authorArtem Dergachev <adergachev@apple.com>
Tue, 28 Mar 2023 21:20:33 +0000 (14:20 -0700)
committerArtem Dergachev <adergachev@apple.com>
Tue, 28 Mar 2023 21:34:28 +0000 (14:34 -0700)
The scan-build tool assists various build systems with applying the Clang
static analyzer alongside compilation. It offers explicit integration with
Xcode's native build system aka `xcodebuild`; in this case it doesn't
substitute the compiler, but instead kindly asks xcodebuild to enable
the static analyzer, something that it already knows how to do.

Make sure scan-build's `-analyzer-config` flag (which translates to a
similar `clang -cc1 -analyzer-config` flag) is properly translated
to Xcode build system. This unbreaks a few related features such as
checker silencing.

No LIT tests because they'd require an Xcode installation on your system.

clang/tools/scan-build/bin/scan-build

index 8cd525f..04734d9 100755 (executable)
@@ -1037,7 +1037,8 @@ sub RunXcodebuild {
   if ($oldBehavior == 0) {
     my $OutputDir = $EnvVars->{"OUTPUT_DIR"};
     my $CLANG = $EnvVars->{"CLANG"};
-    my $OtherFlags = $EnvVars->{"CCC_ANALYZER_ANALYSIS"};
+    my $OtherFlags = $EnvVars->{"CCC_ANALYZER_ANALYSIS"} . " "
+                   . $EnvVars->{"CCC_ANALYZER_CONFIG"};
     push @$Args,
         "RUN_CLANG_STATIC_ANALYZER=YES",
         "CLANG_ANALYZER_OUTPUT=plist-html",