summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2011-10-24 21:56:50 +0000
committerChad Rosier <mcrosier@apple.com>2011-10-24 21:56:50 +0000
commit7f53d592ffbef0225a95cbd97d653307f546a347 (patch)
treeee0d831dbdb5279006bd4867efc636a69b1dd60f /utils
parent10b90a9bbf7dcae1568c03a03f9606f5395f2144 (diff)
downloadllvm-7f53d592ffbef0225a95cbd97d653307f546a347.tar.gz
llvm-7f53d592ffbef0225a95cbd97d653307f546a347.tar.bz2
llvm-7f53d592ffbef0225a95cbd97d653307f546a347.tar.xz
Add options to enable each individual level for the show-diagnostics tool.
rdar://9683410 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142856 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rwxr-xr-xutils/show-diagnostics34
1 files changed, 30 insertions, 4 deletions
diff --git a/utils/show-diagnostics b/utils/show-diagnostics
index 3a69793abc..b8ea8eae31 100755
--- a/utils/show-diagnostics
+++ b/utils/show-diagnostics
@@ -5,15 +5,40 @@ import plistlib
def main():
from optparse import OptionParser, OptionGroup
parser = OptionParser("""\
-usage: %prog [options] <path>
+Usage: %prog [options] <path>
Utility for dumping Clang-style logged diagnostics.\
""")
+ parser.add_option("-a", "--all", action="store_true", dest="all",
+ default=False, help="dump all messages.")
+ parser.add_option("-e", "--error", action="store_true", dest="error",
+ default=False, help="dump 'error' messages.")
+ parser.add_option("-f", "--fatal", action="store_true", dest="fatal",
+ default=False, help="dump 'fatal error' messages.")
+ parser.add_option("-i", "--ignored", action="store_true", dest="ignored",
+ default=False, help="dump 'ignored' messages.")
+ parser.add_option("-n", "--note", action="store_true", dest="note",
+ default=False, help="dump 'note' messages.")
+ parser.add_option("-w", "--warning", action="store_true", dest="warning",
+ default=False, help="dump 'warning' messages.")
(opts, args) = parser.parse_args()
if len(args) != 1:
parser.error("invalid number of arguments")
+ levels = {'error': False, 'fatal error': False, 'ignored': False,
+ 'note': False, 'warning': False}
+ if opts.error:
+ levels['error'] = True
+ if opts.fatal:
+ levels['fatal error'] = True
+ if opts.ignored:
+ levels['ignored'] = True
+ if opts.note:
+ levels['note'] = True
+ if opts.warning:
+ levels['warning'] = True
+
path, = args
# Read the diagnostics log.
@@ -44,9 +69,10 @@ Utility for dumping Clang-style logged diagnostics.\
file = file_diags.get('main-file')
print "*** %s ***" % file
for d in file_diags.get('diagnostics', ()):
- print "%s:%s:%s: %s: %s" % (
- d.get('filename'), d.get('line'), d.get('column'),
- d.get('level'), d.get('message'))
+ 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'))
if __name__ == "__main__":
main()