summaryrefslogtreecommitdiffstats
path: root/llvm/utils/clang-parse-diagnostics-file
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2012-12-22 00:47:06 +0000
committerDaniel Dunbar <daniel@zuster.org>2012-12-22 00:47:06 +0000
commitfa40268fb77ca3a5eccfb62ceeeabd1a9f6590ec (patch)
tree0f151252d30b61ebaaf1b41bfceb614116fb44ea /llvm/utils/clang-parse-diagnostics-file
parentc79e42c5ce2ce0e6d6f13f99a2d75f4c205ab8f3 (diff)
downloadbcm5719-llvm-fa40268fb77ca3a5eccfb62ceeeabd1a9f6590ec.tar.gz
bcm5719-llvm-fa40268fb77ca3a5eccfb62ceeeabd1a9f6590ec.zip
[utils] Tweak utils/clang-parse-diagnostics-file to ignore autoconf diagnostics.
- Also, don't print headers if we aren't going to print any diagnostics. llvm-svn: 170973
Diffstat (limited to 'llvm/utils/clang-parse-diagnostics-file')
-rwxr-xr-xllvm/utils/clang-parse-diagnostics-file36
1 files changed, 27 insertions, 9 deletions
diff --git a/llvm/utils/clang-parse-diagnostics-file b/llvm/utils/clang-parse-diagnostics-file
index b8ea8eae310..59b13f30650 100755
--- a/llvm/utils/clang-parse-diagnostics-file
+++ b/llvm/utils/clang-parse-diagnostics-file
@@ -1,5 +1,6 @@
#!/usr/bin/env python
+import os
import plistlib
def main():
@@ -59,20 +60,37 @@ Utility for dumping Clang-style logged diagnostics.\
</array>
</plist>""" % data
- # Load the diagnostics.
+ # Get the list of files and diagnostics to report.
+ to_report = []
diags = plistlib.readPlistFromString(data)
+ for file_diags in diags:
+ file = file_diags.get('main-file')
+
+ # Ignore diagnostics for 'conftest.c', which is the file autoconf uses
+ # for its tests (which frequently will have warnings).
+ if os.path.basename(file) == 'conftest.c':
+ continue
+
+ # Get the diagnostics for the selected levels.
+ selected_diags = [d
+ for d in file_diags.get('diagnostics', ())
+ if levels[d.get('level')] or opts.all]
+ if selected_diags:
+ to_report.append((file, selected_diags))
- # Print out the diagnostics.
+ # If there are no diagnostics to report, show nothing.
+ if not to_report:
+ return
+
+ # Otherwise, print out the diagnostics.
print
print "**** BUILD DIAGNOSTICS ****"
- for i, file_diags in enumerate(diags):
- file = file_diags.get('main-file')
+ for file,selected_diags in to_report:
print "*** %s ***" % file
- for d in file_diags.get('diagnostics', ()):
- if levels[d.get('level')] or opts.all:
- print " %s:%s:%s: %s: %s" % (
- d.get('filename'), d.get('line'), d.get('column'),
- d.get('level'), d.get('message'))
+ for d in selected_diags:
+ print " %s:%s:%s: %s: %s" % (
+ d.get('filename'), d.get('line'), d.get('column'),
+ d.get('level'), d.get('message'))
if __name__ == "__main__":
main()
OpenPOWER on IntegriCloud