]> granicus.if.org Git - clang/commitdiff
[analyzer] Use "issue hash" in CmpRuns; followup on r158180
authorAnna Zaks <ganna@apple.com>
Fri, 8 Jun 2012 01:50:49 +0000 (01:50 +0000)
committerAnna Zaks <ganna@apple.com>
Fri, 8 Jun 2012 01:50:49 +0000 (01:50 +0000)
(For the future: It would be more efficient to produce a hash key with
the embedded function info inside the compiler.)

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

utils/analyzer/CmpRuns.py

index e68c45df184af086888e991df9d5cc3c4acf1136..220045319facf67eacaa64a6c434a8dc829630aa 100755 (executable)
@@ -134,6 +134,14 @@ def loadResults(path, opts, deleteEmpty=True):
 
     return run
 
+def getIssueIdentifier(d) :
+    id = ''
+    if 'issue_context' in d.data :
+      id += d.data['issue_context']
+    if 'issue_hash' in d.data :
+      id += str(d.data['issue_hash'])
+    return id
+
 def compareResults(A, B):
     """
     compareResults - Generate a relation from diagnostics in run A to
@@ -152,12 +160,12 @@ def compareResults(A, B):
     neqB = []
     eltsA = list(A.diagnostics)
     eltsB = list(B.diagnostics)
-    eltsA.sort(key = lambda d: d.data)
-    eltsB.sort(key = lambda d: d.data)
+    eltsA.sort(key = getIssueIdentifier)
+    eltsB.sort(key = getIssueIdentifier)
     while eltsA and eltsB:
         a = eltsA.pop()
         b = eltsB.pop()
-        if a.data['location'] == b.data['location']:
+        if (getIssueIdentifier(a) == getIssueIdentifier(b)) :
             res.append((a, b, 0))
         elif a.data > b.data:
             neqA.append(a)