diff options
author | George Karpenkov <ekarpenkov@apple.com> | 2018-06-29 22:05:32 +0000 |
---|---|---|
committer | George Karpenkov <ekarpenkov@apple.com> | 2018-06-29 22:05:32 +0000 |
commit | 5c23d6ab3c36ab76f684fac5b4b8ccd0f0e13a63 (patch) | |
tree | bcfb5df8ec12fa986fdb177e3b47f03e96a342a6 /clang/utils/analyzer/SATestBuild.py | |
parent | a262cf3146eaae98e46bf8debe2957bd710631c0 (diff) | |
download | bcm5719-llvm-5c23d6ab3c36ab76f684fac5b4b8ccd0f0e13a63.tar.gz bcm5719-llvm-5c23d6ab3c36ab76f684fac5b4b8ccd0f0e13a63.zip |
[analyzer] [tests] Allow the tested project to specify it's own analyzer wrapper
llvm-svn: 336023
Diffstat (limited to 'clang/utils/analyzer/SATestBuild.py')
-rwxr-xr-x | clang/utils/analyzer/SATestBuild.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/utils/analyzer/SATestBuild.py b/clang/utils/analyzer/SATestBuild.py index 00f3bd853d3..882c5ce7fca 100755 --- a/clang/utils/analyzer/SATestBuild.py +++ b/clang/utils/analyzer/SATestBuild.py @@ -136,6 +136,9 @@ CleanupScript = "cleanup_run_static_analyzer.sh" # This is a file containing commands for scan-build. BuildScript = "run_static_analyzer.cmd" +# A comment in a build script which disables wrapping. +NoPrefixCmd = "#NOPREFIX" + # The log file name. LogFolderName = "Logs" BuildLogName = "run_static_analyzer.log" @@ -285,6 +288,7 @@ def runScanBuild(Dir, SBOutputDir, PBuildLogFile): # Always use ccc-analyze to ensure that we can locate the failures # directory. SBOptions += "--override-compiler " + ExtraEnv = {} try: SBCommandFile = open(BuildScriptPath, "r") SBPrefix = "scan-build " + SBOptions + " " @@ -292,6 +296,15 @@ def runScanBuild(Dir, SBOutputDir, PBuildLogFile): Command = Command.strip() if len(Command) == 0: continue + + # Custom analyzer invocation specified by project. + # Communicate required information using environment variables + # instead. + if Command == NoPrefixCmd: + SBPrefix = "" + ExtraEnv['OUTPUT'] = SBOutputDir + continue + # If using 'make', auto imply a -jX argument # to speed up analysis. xcodebuild will # automatically use the maximum number of cores. @@ -305,6 +318,7 @@ def runScanBuild(Dir, SBOutputDir, PBuildLogFile): check_call(SBCommand, cwd=SBCwd, stderr=PBuildLogFile, stdout=PBuildLogFile, + env=dict(os.environ, **ExtraEnv), shell=True) except CalledProcessError: Local.stderr.write("Error: scan-build failed. Its output was: \n") |