Modified to conform to ANSI C
authorceriel <none@none>
Fri, 22 Oct 1993 14:05:24 +0000 (14:05 +0000)
committerceriel <none@none>
Fri, 22 Oct 1993 14:05:24 +0000 (14:05 +0000)
modules/src/assert/BadAssert.c
modules/src/assert/assert.3
modules/src/assert/assert.h

index 82c8222..c1cccb5 100644 (file)
@@ -24,6 +24,7 @@ wr_num(fd, n)
        sys_write(fd, s, 1);
 }
 
+int
 _BadAssertion(file, lineno, assertion)
        char *file, *assertion;
        int lineno;
@@ -36,4 +37,5 @@ _BadAssertion(file, lineno, assertion)
        sys_write(STDERR, assertion, strlen(assertion));
        sys_write(STDERR, "\" failed\n", 9);
        sys_stop(S_ABORT);
+       return 0;
 }
index d3da1cf..8f5f6ec 100644 (file)
@@ -33,7 +33,7 @@ It causes a
 .IR sys_stop (S_ABORT)
 with a diagnostic comment on standard error.
 .PP
-The assertions are enabled by defining the preprocessor constant DEBUG.
+The assertions are disabled by defining the preprocessor constant NDEBUG.
 .SH DIAGNOSTICS
 .IR fn ,
 line
index 50cbb98..f630add 100644 (file)
@@ -5,13 +5,20 @@
 /* $Header$ */
 /*      A S S E R T I O N    M A C R O   D E F I N I T I O N           */
 
-#ifdef DEBUG
-#ifdef __STDC__
-#define        assert(exp)     ((exp) || _BadAssertion(__FILE__, __LINE__, #exp))
+/* This 'assert' definition can be used in a ,-expression. */
+
+#ifndef        NDEBUG
+#if __STDC__
+int _BadAssertion(char *, int, char *);
+#define        assert(exp)     ((void)((exp) || _BadAssertion(__FILE__, __LINE__, #exp)))
 #else
 /*     Note: this macro uses parameter substitution inside strings */
 #define        assert(exp)     ((exp) || _BadAssertion(__FILE__, __LINE__, "exp"))
 #endif
 #else
-#define        assert(exp)     (1)
-#endif /* DEBUG */
+#if __STDC__
+#define        assert(exp)     ((void)0)
+#else
+#define        assert(exp)     (0)
+#endif
+#endif /* NDEBUG */