diff --git a/CODING_STANDARDS b/CODING_STANDARDS index cf6455bf7d2..e200f1e1a2e 100644 --- a/CODING_STANDARDS +++ b/CODING_STANDARDS @@ -64,6 +64,9 @@ Exceptions: not recommended. Since most of PHP_* macros are ZEND_* macro alias, use of PHP_* macro makes browsing source with tag search harder. +[8] Use assert(). assert.h is included in php.h if it is available. + Not only good assertion catch bugs, but also it makes easier to read code. + Naming Conventions ------------------ diff --git a/configure.in b/configure.in index 9001db916f7..4412440ba0b 100644 --- a/configure.in +++ b/configure.in @@ -363,6 +363,7 @@ ApplicationServices/ApplicationServices.h \ alloca.h \ arpa/inet.h \ arpa/nameser.h \ +assert.h \ crypt.h \ fcntl.h \ grp.h \ diff --git a/main/php.h b/main/php.h index e17d6d886a4..131ac7819ee 100644 --- a/main/php.h +++ b/main/php.h @@ -63,7 +63,16 @@ #include "php_regex.h" - +#if HAVE_ASSERT_H +#if PHP_DEBUG +#undef NDEBUG +#else +#define NDEBUG +#endif +#include +#else /* HAVE_ASSERT_H */ +#define assert(expr) ((void) (0)) +#endif /* HAVE_ASSERT_H */ #define APACHE 0