[U-Boot] use of C99

Jerry Van Baren
2009-04-08T19:46:37Z

Hi Wolfgang,

Wolfgang Denk wrote:
> Dear Kumar Gala,
>
> In message <4A0B9AAA-4714-4C27-84A7-22FCE4D91DDA@freescale.com> you wrote:
>> I was wondering if there was any reason we avoid C99 features in u-
>> boot source.
>>
>> Specifically the ability to declare variables in the middle of
>> functions.
>
> One reason is that I consider such code extremely ugly and hard to
> read and understand.

ACK. I don't expect to see variables spring into life in the middle of
nowhere.

>> There are a slew of places that we have something like:
> ...
>> #ifdef CONFIG_COOL_FEATURE
>> u32 myvarrocks = foo * bar * bar;
>>
>> gd->neato = myvarrocks
>> #endif
>
> It would be even better to avoid such #ifdef's, or at least the need
> for such special local variables.

Sometimes (often?) that is impossible.

> Best regards,
>
> Wolfgang Denk

If I'm not confused, I've seen block-local u-boot variables, has the
advantages of being more distinctive and limits the lifetime of the
variable.

#ifdef CONFIG_COOL_FEATURE
{
u32 myvarrocks = foo * bar * bar;

gd->neato = myvarrocks
}
#endif

Is this an acceptable compromise?

Best regards,
gvb