diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 3a1cb9d7474e5bbc2416df40a20d66eb74139c83..feb9e856f11dd2b43559040a708b315b1a297d5d 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -4849,8 +4849,10 @@ sub process { $dstat !~ /^\(\{/ && # ({... $ctx !~ /^.\s*#\s*define\s+TRACE_(?:SYSTEM|INCLUDE_FILE|INCLUDE_PATH)\b/) { - - if ($dstat =~ /;/) { + if ($dstat =~ /^\s*if\b/) { + ERROR("MULTISTATEMENT_MACRO_USE_DO_WHILE", + "Macros starting with if should be enclosed by a do - while loop to avoid possible if/else logic defects\n" . "$herectx"); + } elsif ($dstat =~ /;/) { ERROR("MULTISTATEMENT_MACRO_USE_DO_WHILE", "Macros with multiple statements should be enclosed in a do - while loop\n" . "$herectx"); } else {