Correct and improve __diagassert.
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 26 Apr 2005 10:41:57 +0000 (10:41 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Tue, 26 Apr 2005 10:41:57 +0000 (10:41 +0000)
include/assert.h
lib/libc/gen/assert.c

index e4caa29..1d48d04 100644 (file)
@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *     @(#)assert.h    8.2 (Berkeley) 1/21/94
- * $DragonFly: src/include/assert.h,v 1.3 2005/01/06 17:32:44 joerg Exp $
+ * $DragonFly: src/include/assert.h,v 1.4 2005/04/26 10:41:57 joerg Exp $
  */
 
 /*
@@ -57,7 +57,7 @@
 
 #undef _DIAGASSERT
 #ifdef _DIAGNOSTIC
-#define        _DIAGASSERT(e)  ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e))
+#define        _DIAGASSERT(e)  ((e) ? (void)0 : __diagassert(__FILE__, __LINE__, __func__, #e))
 #else
 #define        _DIAGASSERT(e)  ((void)0)
 #endif
@@ -66,5 +66,5 @@
 
 __BEGIN_DECLS
 void   __assert(const char *, int, const char *);
-void   __diag_assert(const char *, int, const char *);
+void   __diagassert(const char *, int, const char *, const char *);
 __END_DECLS
index a765a1c..88da83b 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  * @(#)assert.c        8.1 (Berkeley) 6/4/93
- * $DragonFly: src/lib/libc/gen/assert.c,v 1.4 2005/01/06 17:34:25 joerg Exp $
+ * $DragonFly: src/lib/libc/gen/assert.c,v 1.5 2005/04/26 10:41:57 joerg Exp $
  */
 
 #include <sys/syslog.h>
@@ -57,8 +57,8 @@ enum {
 static int     diagassert_flags = -1;
 
 void
-__diagassert(const char *file, const char *line, const char *function,
-            int failedexpr)
+__diagassert(const char *file, int line, const char *function,
+            const char *failedexpr)
 {
        char buf[1024];
 
@@ -92,7 +92,8 @@ __diagassert(const char *file, const char *line, const char *function,
        }
 
        snprintf(buf, sizeof(buf),
-                "assertion \"%s\" failed: file \"%s\", line %d");
+                "assertion \"%s\" failed: file \"%s\", line %d, function \"%s\"",
+                failedexpr, file, line, function);
        if (diagassert_flags & DIAGASSERT_STDERR)
                fprintf(stderr, "%s: %s\n", getprogname(), buf);
        if (diagassert_flags & DIAGASSERT_SYSLOG)