[U-Boot] [PATCH v2] arm: Correct build error introduced by getenv_ulong() patch
Graeme Russ
graeme.russ at gmail.com
Wed Nov 9 00:18:01 CET 2011
Hi Wolfgang
On Wed, Nov 9, 2011 at 9:49 AM, Wolfgang Denk <wd at denx.de> wrote:
> Dear Simon Glass,
>
> In message <CAPnjgZ15f_gva5+MM1Em-L2sMxt1WAATxqiKUHOQAT893t9MMw at mail.gmail.com> you wrote:
>>
>> This discussion was regarding the need to #ifdef the variable declaration, viz:
>>
>> #if defined(THING1) || defined(THING2)
>> const char *cat;
>> #endif
>>
>> ...
>>
>>
>> #ifdef THING1
>> cat = getenv("cat");
>>
>> send_back(cat);
>> #endif
>>
>> ....
>>
>> #ifdef THING2
>> cat = check_outside("cat");
>>
>> if (cat)
>> wibble(cat);
>> #endif
>>
>>
>> and whether the top bit would be better as:
>>
>> __maybe_unused const char *cat;
>>
>> But more generally, lots of #ifdefs do make the code harder to read,
>> and potentially more brittle in the face of config changes.
>
> I would like to see only a minimal number of "__maybe_unused" in the
> code - in cases, where this is the way that hurts least.
>
> In the examples above, it might be better to use local blocks, like:
>
> #ifdef THING1
> {
> const char *cat = getenv("cat");
>
> send_back(cat);
> }
> #endif
I honestly think most of these cases can be factored out into functions.
The compiler should inline them anyway so the overhead should be zero.
The various board.c files are a prime example of where this should be
done as a matter of principle to reduce the complexity and lenght of
the primary function anyway
Regards,
Graeme
More information about the U-Boot
mailing list