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

Wolfgang Denk wd at denx.de
Sat Oct 22 00:20:26 CEST 2011


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?

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