[analyzer] CmpRuns: move the clang_version info into the run (out of

report)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168105 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Anna Zaks 2012-11-15 22:42:44 +00:00
Родитель e8b5db4f27
Коммит f0024960d5
1 изменённых файлов: 15 добавлений и 7 удалений

Просмотреть файл

@ -120,9 +120,8 @@ class CmpOptions:
self.verboseLog = verboseLog self.verboseLog = verboseLog
class AnalysisReport: class AnalysisReport:
def __init__(self, run, files, clang_vers): def __init__(self, run, files):
self.run = run self.run = run
self.clang_version = clang_vers
self.files = files self.files = files
self.diagnostics = [] self.diagnostics = []
@ -134,6 +133,10 @@ class AnalysisRun:
self.reports = [] self.reports = []
# Cumulative list of all diagnostics from all the reports. # Cumulative list of all diagnostics from all the reports.
self.diagnostics = [] self.diagnostics = []
self.clang_version = None
def getClangVersion(self):
return self.clang_version
# Backward compatibility API. # Backward compatibility API.
@ -156,6 +159,15 @@ def loadResultsFromSingleRun(info, deleteEmpty=True):
p = os.path.join(dirpath, f) p = os.path.join(dirpath, f)
data = plistlib.readPlist(p) data = plistlib.readPlist(p)
# We want to retrieve the clang version even if there are no
# reports. Assume that all reports were created using the same
# clang version (this is always true and is more efficient).
if ('clang_version' in data) :
if (run.clang_version == None) :
run.clang_version = data.pop('clang_version')
else:
data.pop('clang_version')
# Ignore/delete empty reports. # Ignore/delete empty reports.
if not data['files']: if not data['files']:
if deleteEmpty == True: if deleteEmpty == True:
@ -173,11 +185,7 @@ def loadResultsFromSingleRun(info, deleteEmpty=True):
else: else:
htmlFiles = [None] * len(data['diagnostics']) htmlFiles = [None] * len(data['diagnostics'])
clang_version = '' report = AnalysisReport(run, data.pop('files'))
if 'clang_version' in data:
clang_version = data.pop('clang_version')
report = AnalysisReport(run, data.pop('files'), clang_version)
diagnostics = [AnalysisDiagnostic(d, report, h) diagnostics = [AnalysisDiagnostic(d, report, h)
for d,h in zip(data.pop('diagnostics'), for d,h in zip(data.pop('diagnostics'),
htmlFiles)] htmlFiles)]