[U-Boot] [RESEND PATCH v3] Add assert() for debug assertions

Simon Glass sjg at chromium.org
Sat Oct 22 04:59:07 CEST 2011


Hi Wolfgang,

On Fri, Oct 21, 2011 at 3:20 PM, Wolfgang Denk <wd at denx.de> wrote:
> Dear Simon Glass,
>
> In message <1315434680-21641-1-git-send-email-sjg at chromium.org> you wrote:
>> assert() is like BUG_ON() but compiles to nothing unless DEBUG is defined.
>> This is useful when a condition is an error but a board reset is unlikely
>> to fix it, so it is better to soldier on in hope. Assertion failures should
>> be caught during development/test.
>>
>> It turns out that assert() is defined separately in a few places in U-Boot
>> with various meanings. This patch cleans up some of these.
>>
>> Build errors exposed by this change (and defining DEBUG) are also fixed in
>> this patch.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
> ...
>> --- a/lib/vsprintf.c
>> +++ b/lib/vsprintf.c
>> @@ -730,3 +730,11 @@ void panic(const char *fmt, ...)
>>       while (1)
>>               ;
>>  }
>> +
>> +void __assert_fail(const char *assertion, const char *file, unsigned line,
>> +                const char *function)
>> +{
>> +     /* This will not return */
>> +     panic("%s:%u: %s: Assertion `%s' failed.", file, line, function,
>> +           assertion);
>> +}
>
> Can you please #ifdef it so it doesn't get added for the non-debug
> case, too?

Well I could, but then if someone defines DEBUG in a file they will
get a link error I think. Or are you thinking of adding a new CONFIG
which *permits* people to use DEBUG?

Regards,
Simon

>
> Best regards,
>
> Wolfgang Denk
>
> --
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> The human mind  ordinarily  operates  at  only  ten  percent  of  its
> capacity. The rest is overhead for the operating system.
>


More information about the U-Boot mailing list