aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSimon Glass2011-06-29 09:49:34 +0000
committerWolfgang Denk2011-09-10 00:04:01 +0200
commit21726a7afce16b882b5cedf70a0c112caea945be (patch)
tree8c4e45ababfc547cc27eca5d9ce4d6b1907af2e1 /lib
parent6a8760d748b432f5c7df01c6d23a3f11c11a6878 (diff)
Add assert() for debug assertions
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@chromium.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/qsort.c5
-rw-r--r--lib/vsprintf.c8
2 files changed, 8 insertions, 5 deletions
diff --git a/lib/qsort.c b/lib/qsort.c
index 1cc0d31c9ea..86c392c225a 100644
--- a/lib/qsort.c
+++ b/lib/qsort.c
@@ -17,11 +17,6 @@
#include <linux/types.h>
#include <exports.h>
-#if 0
-#include <assert.h>
-#else
-#define assert(arg)
-#endif
void qsort(void *base,
size_t nel,
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index c029fbbc481..79dead3996e 100644
--- 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);
+}