summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorrdivacky <rdivacky@FreeBSD.org>2009-01-29 16:51:09 +0000
committerrdivacky <rdivacky@FreeBSD.org>2009-01-29 16:51:09 +0000
commite91f445797f707fd759fbafc54484819d3f56a3d (patch)
treec6ad73e3a3d25cef11268431972d6556418dfa30 /sys
parentd27cdd2fdd1b3c6f17b9a97f484bca9fad2760df (diff)
downloadFreeBSD-src-e91f445797f707fd759fbafc54484819d3f56a3d.zip
FreeBSD-src-e91f445797f707fd759fbafc54484819d3f56a3d.tar.gz
Define NULL to be __null in a case of gnu c++. This makes sentinel attribute
work ok in C++. Note that we enable this only for gcc 4.x for any value of x. The __null was introduced in gcc 4.1 (in fact it was commited 12 days after release of gcc 4.0) and as we have never released any version of FreeBSD with gcc 4.0 nor ports support gcc 4.0.x this is a safe check. Using __GNUC_PREREQ__ would require us to include cdefs.h in params.h so we just check __GNUC__. Approved by: kib (mentor) Tested by: exp build of ports (done by pav) Tested by: make universe (done by me)
Diffstat (limited to 'sys')
-rw-r--r--sys/sys/_null.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/sys/_null.h b/sys/sys/_null.h
index 9e965f1..caae781 100644
--- a/sys/sys/_null.h
+++ b/sys/sys/_null.h
@@ -31,11 +31,15 @@
#if defined(_KERNEL) || !defined(__cplusplus)
#define NULL ((void *)0)
#else
+#if defined(__GNUG__) && defined(__GNUC__) && __GNUC__ >= 4
+#define NULL __null
+#else
#if defined(__LP64__)
#define NULL (0L)
#else
#define NULL 0
#endif /* __LP64__ */
+#endif /* __GNUG__ */
#endif /* _KERNEL || !__cplusplus */
#endif
OpenPOWER on IntegriCloud