[U-Boot] [PATCH 2/3] fix checkpatch errors
Haavard Skinnemoen
haavard.skinnemoen at atmel.com
Mon Sep 8 15:01:33 CEST 2008
JerryVanBaren <gerald.vanbaren at ge.com> wrote:
> Georg Schardt wrote:
> > ---
> > include/configs/FX12MM.h | 12 ++++++------
> > 1 files changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/include/configs/FX12MM.h b/include/configs/FX12MM.h
> > index b47e403..8b8d41c 100644
> > --- a/include/configs/FX12MM.h
> > +++ b/include/configs/FX12MM.h
> > @@ -15,28 +15,28 @@
> > #define CONFIG_DOS_PARTITION 1
> > #define CFG_SYSTEMACE_BASE XPAR_SYSACE_0_BASEADDR
> > #define CFG_SYSTEMACE_WIDTH XPAR_SYSACE_0_MEM_WIDTH
> > -#define ADD_SYSTEMACE_CMDS (| CFG_CMD_FAT)
> > +#define ADD_SYSTEMACE_CMDS ( | CFG_CMD_FAT )
> > #define RM_SYSTEMACE_CMDS
> > #else
> > #define ADD_SYSTEMACE_CMDS
> > -#define RM_SYSTEMACE_CMDS | CFG_CMD_FAT
> > +#define RM_SYSTEMACE_CMDS ( | CFG_CMD_FAT )
>
> Dear List,
>
> Philosophical question: is it better to put silly parenthesis around
> #defines to make checkpatch shut up or to accept that checkpatch isn't
> perfect and let it bitch about things that were done intentionally and
> make sense per their usage?
In this particular case, I'd recommend not starting the macro with a
binary operator in the first place. That's just _wrong_.
Better define ADD_SYSTEMACE_CMDS etc. as 0 if no flags are to be
added/removed, and add the operator at the callsite.
> (Yes, I see the first one already had () and the change is just fixing
> the spacing.)
The checkpatch author probably never considered that anyone would
actually define a macro beginning with a binary operator, so it's no
surprise that it comes up with strange suggestions.
That said, putting parentheses around macro contents is a good rule in
general since it might avoid quite a few surprises. E.g.
#define FOO -1
bar = 2FOO; /* should give a compile error, but doesn't */
> I'm serious about this question: in my day job I see a lot of mechanical
> praying to the god of miserableC (MISRA-C) adding a HUGE amount of
> unnecessary syntax noise such that it becomes hard to read the code
> because of all the noise. I've had people at work ask me why "we"
> cannot write code that is as easy to understand as the linux kernel.
> The answer is simple: "we" are slavishly and mechanically following the
> god of "if it was good practice somewhere, sometime, it must always be a
> good practice" and not applying good engineering judgment and experience.
I'm not particularly familiar with MISRA-C, but from what I've seen of
it, it's a particularly horrible example of following rules just for
the sake of the rules.
> It is WRONG to let our tools rule us.[1]
Agreed.
Haavard
More information about the U-Boot
mailing list