]> granicus.if.org Git - clang/commitdiff
[analyzer] [testing] Inside CmpRuns.py output also print the filename of the first...
authorGeorge Karpenkov <ekarpenkov@apple.com>
Tue, 5 Feb 2019 22:26:57 +0000 (22:26 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Tue, 5 Feb 2019 22:26:57 +0000 (22:26 +0000)
Differential Revision: https://reviews.llvm.org/D57783

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

utils/analyzer/CmpRuns.py

index be503499622d18ebbe4e684cf43fc030302c4d53..3fab6ef520c42e05464947103268bd72aaf04538 100755 (executable)
@@ -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(),