Dear Simon Glass, In message <[email protected]> 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 <[email protected]> > --- > V2: > * Changed macros so that all code is compiled even if DEBUG is disabled ... > +#define assert(x) \ > + ({ if (!(x) && _DEBUG) \ > + printf("Assertion failure '%s' %s line %d\n", \ > + #x, __FILE__, __LINE__); })
Can we please use the same message format as used by assert(3) ? Afaict they use "%s%s%s:%u: %s%sAssertion `%s' failed.". Also, to save on memory footprint (frequent repetition of the common string "Assertion failed") we should probably provide a separate function for this (cf. /usr/include/assert.h). Finally, should the assert() not result in some termination or hang of U-Boot, like assert(3) is doing? 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: [email protected] "What the scientists have in their briefcases is terrifying." - Nikita Khrushchev _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

