diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2012-12-22 00:47:06 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2012-12-22 00:47:06 +0000 |
| commit | fa40268fb77ca3a5eccfb62ceeeabd1a9f6590ec (patch) | |
| tree | 0f151252d30b61ebaaf1b41bfceb614116fb44ea /llvm/utils/clang-parse-diagnostics-file | |
| parent | c79e42c5ce2ce0e6d6f13f99a2d75f4c205ab8f3 (diff) | |
| download | bcm5719-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-x | llvm/utils/clang-parse-diagnostics-file | 36 |
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() |

