[analyzer] [testing] Inside CmpRuns.py output also print the filename of the first item in the path

Differential Revision: https://reviews.llvm.org/D57783

llvm-svn: 353228
This commit is contained in:
George Karpenkov 2019-02-05 22:26:57 +00:00
parent 6794aa702a
commit a64b205ae7
1 changed files with 22 additions and 1 deletions

View File

@ -73,6 +73,21 @@ class AnalysisDiagnostic(object):
return fileName[len(root) + 1:]
return fileName
def getRootFileName(self):
path = self._data['path']
if not path:
return self.getFileName()
p = path[0]
if 'location' in p:
fIdx = p['location']['file']
else: # control edge
fIdx = path[0]['edges'][0]['start'][0]['file']
out = self._report.files[fIdx]
root = self._report.run.root
if out.startswith(root):
return out[len(root):]
return out
def getLine(self):
return self._loc['line']
@ -106,7 +121,13 @@ class AnalysisDiagnostic(object):
funcnamePostfix = "#" + self._data['issue_context']
else:
funcnamePostfix = ""
return '%s%s:%d:%d, %s: %s' % (self.getFileName(),
rootFilename = self.getRootFileName()
fileName = self.getFileName()
if rootFilename != fileName:
filePrefix = "[%s] %s" % (rootFilename, fileName)
else:
filePrefix = rootFilename
return '%s%s:%d:%d, %s: %s' % (filePrefix,
funcnamePostfix,
self.getLine(),
self.getColumn(), self.getCategory(),