]> granicus.if.org Git - clang/commitdiff
[analyzer] Update SATestBuild.py to set -isysroot for preprocessed files
authorDevin Coughlin <dcoughlin@apple.com>
Mon, 14 Sep 2015 21:22:24 +0000 (21:22 +0000)
committerDevin Coughlin <dcoughlin@apple.com>
Mon, 14 Sep 2015 21:22:24 +0000 (21:22 +0000)
Update the static analyzer buildbot script to set -isysroot to the OS X SDK path
when analyzing preprocessed files on OS X.

Differential Revision: http://reviews.llvm.org/D12769

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

utils/analyzer/SATestBuild.py

index e541c72c6ac456c3a10496941ac72eae23bfea8a..440b2ec956b07bc6f9d26a6d2c27f8a9f5999241 100755 (executable)
@@ -52,7 +52,7 @@ import shutil
 import time
 import plistlib
 import argparse
-from subprocess import check_call, CalledProcessError
+from subprocess import check_call, check_output, CalledProcessError
 
 #------------------------------------------------------------------------------
 # Helper functions.
@@ -255,6 +255,15 @@ def isValidSingleInputFile(FileName):
         return True
     return False
 
+# Get the path to the SDK for the given SDK name. Returns None if
+# the path cannot be determined.
+def getSDKPath(SDKName):
+    if which("xcrun") is None:
+        return None
+
+    Cmd = "xcrun --sdk " + SDKName + " --show-sdk-path"
+    return check_output(Cmd, shell=True).rstrip()
+
 # Run analysis on a set of preprocessed files.
 def runAnalyzePreprocessed(Dir, SBOutputDir, Mode):
     if os.path.exists(os.path.join(Dir, BuildScript)):
@@ -262,7 +271,15 @@ def runAnalyzePreprocessed(Dir, SBOutputDir, Mode):
                BuildScript
         raise Exception()
 
-    CmdPrefix = Clang + " -cc1 -analyze -analyzer-output=plist -w "
+    CmdPrefix = Clang + " -cc1 "
+
+    # For now, we assume the preprocessed files should be analyzed
+    # with the OS X SDK.
+    SDKPath = getSDKPath("macosx")
+    if SDKPath is not None:
+      CmdPrefix += "-isysroot " + SDKPath + " "
+
+    CmdPrefix += "-analyze -analyzer-output=plist -w "
     CmdPrefix += "-analyzer-checker=" + Checkers +" -fcxx-exceptions -fblocks "
 
     if (Mode == 2) :