Unlike all other types, LONG_LINE, LONG_LINE_COMMENT and LONG_LINE_STRING are passed to WARN() through a variable. This causes the parser in list_types() to miss them and consequently they are not present in the output of --list-types.
Additionally, types TYPO_SPELLING, FSF_MAILING_ADDRESS and AVOID_BUG are passed with a variable level, causing the parser to miss them too. So modify the regex to also catch these special cases. Signed-off-by: Jean Delvare <jdelv...@suse.de> Fixes: 3beb42eced39 ("checkpatch: add --list-types to show message types to show or ignore") Cc: Andy Whitcroft <a...@canonical.com> Cc: Joe Perches <j...@perches.com> --- scripts/checkpatch.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- linux-4.13-rc7.orig/scripts/checkpatch.pl 2017-09-02 17:46:45.852024037 +0200 +++ linux-4.13-rc7/scripts/checkpatch.pl 2017-09-02 17:46:55.925163818 +0200 @@ -145,7 +145,8 @@ sub list_types { close($script); my @types = (); - for ($text =~ /\b(?:(?:CHK|WARN|ERROR)\s*\(\s*"([^"]+)")/g) { + # Also catch when type or level is passed through a variable + for ($text =~ /(?:(?:\bCHK|\bWARN|\bERROR|&\{\$msg_level})\s*\(|\$msg_type\s*=)\s*"([^"]+)"/g) { push (@types, $_); } @types = sort(uniq(@types)); -- Jean Delvare SUSE L3 Support