On 21/12/2016 16:22, Eduardo Habkost wrote:
> On Tue, Dec 20, 2016 at 03:01:17PM -0800, [email protected] wrote:
> [...]
>> Checking PATCH 4/7: hw/i386/pc: introduce 2.9 machine types with 0x20 fw_cfg
>> file slots...
>> ERROR: Macros with multiple statements should be enclosed in a do - while
>> loop
>> #126: FILE: include/hw/compat.h:4:
>> +#define HW_COMPAT_2_8 \
>> + {\
>> + .driver = "fw_cfg_mem",\
>> + .property = "file_slots",\
>> + .value = stringify(0x10),\
>> + },{\
>> + .driver = "fw_cfg_io",\
>> + .property = "file_slots",\
>> + .value = stringify(0x10),\
>> + },
>>
>> total: 1 errors, 0 warnings, 119 lines checked
>>
>> Your patch has style problems, please review. If any of these errors
>> are false positives report them to the maintainer, see
>> CHECKPATCH in MAINTAINERS.
>
> It is a false positive, but how exactly can we fix it? Should it
> become a warning instead of an error?
It should already be treated as an exception:
my $exceptions = qr{
$Declare|
module_param_named|
MODULE_PARAM_DESC|
DECLARE_PER_CPU|
DEFINE_PER_CPU|
__typeof__\(|
union|
struct|
\.$Ident\s*=\s*| # <---- see here
^\"|\"$
}x;
#print "REST<$rest> dstat<$dstat> ctx<$ctx>\n";
if ($rest ne '' && $rest ne ',') {
if ($rest !~ /while\s*\(/ &&
$dstat !~ /$exceptions/)
{
ERROR("Macros with multiple statements
should be enclosed in a do - while loop\n" . "$here\n$ctx\n");
}
so I guess the first step is debugging it. :)
Paolo