summaryrefslogtreecommitdiffstats
path: root/utils/find-unused-diagnostics.sh
blob: 89b7f7a700d5eee2d6e4f8b0991c56c812f06fb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
#
# This script produces a list of all diagnostics that are defined
# in Diagnostic*.td files but not used in sources.
#

ALL_DIAGS=$(mktemp)
ALL_SOURCES=$(mktemp)

grep -E --only-matching --no-filename '(err_|warn_|ext_|note_)[a-z_]+ ' ./include/clang/Basic/Diagnostic*.td > $ALL_DIAGS
find lib include tools -name \*.cpp -or -name \*.h > $ALL_SOURCES
for DIAG in $(cat $ALL_DIAGS); do
  if ! grep -r $DIAG $(cat $ALL_SOURCES) > /dev/null; then
    echo $DIAG
  fi;
done

rm $ALL_DIAGS $ALL_SOURCES