[analyzer] SATestBuild.py: Be defensive against corrupt plist files.
diff --git a/clang/utils/analyzer/SATestBuild.py b/clang/utils/analyzer/SATestBuild.py
index 347f1e2..42b2658 100755
--- a/clang/utils/analyzer/SATestBuild.py
+++ b/clang/utils/analyzer/SATestBuild.py
@@ -58,6 +58,7 @@
import sys
import threading
import time
+from xml.parsers.expat import ExpatError
try:
import queue
except ImportError:
@@ -485,10 +486,14 @@
for F in glob.glob(SBOutputDir + "/*/*.plist"):
P = os.path.join(SBOutputDir, F)
- Data = plistlib.readPlist(P)
- # Delete empty reports.
- if not Data['files']:
- os.remove(P)
+ try:
+ Data = plistlib.readPlist(P)
+ # Delete empty reports.
+ if not Data['files']:
+ os.remove(P)
+ continue
+ except ExpatError as e:
+ print('Error parsing plist file %s: %s' % (P, str(e)))
continue