Module Name:    src
Committed By:   pooka
Date:           Thu Mar 13 20:36:01 UTC 2014

Modified Files:
        src/sys/sys: cdefs.h

Log Message:
For compilers without __COUNTER__, make the ctassert name contain
__INCLUDE_LEVEL__ ## _ ## __LINE__.  It's not perfect, but at least it's
better than just __LINE__ since it avoids collisions between .c's and .h's.

Incidentally, why does half of the kernel call CTASSERT() and the
other half __CTASSERT()?


To generate a diff of this commit:
cvs rdiff -u -r1.118 -r1.119 src/sys/sys/cdefs.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/cdefs.h
diff -u src/sys/sys/cdefs.h:1.118 src/sys/sys/cdefs.h:1.119
--- src/sys/sys/cdefs.h:1.118	Wed Feb  5 01:59:58 2014
+++ src/sys/sys/cdefs.h	Thu Mar 13 20:36:01 2014
@@ -1,7 +1,6 @@
-/*	$NetBSD: cdefs.h,v 1.118 2014/02/05 01:59:58 matt Exp $	*/
+/*	$NetBSD: cdefs.h,v 1.119 2014/03/13 20:36:01 pooka Exp $	*/
 
-/*
- * Copyright (c) 1991, 1993
+/* * Copyright (c) 1991, 1993
  *	The Regents of the University of California.  All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
@@ -146,7 +145,9 @@
 #ifdef __COUNTER__
 #define	__CTASSERT(x)		__CTASSERT0(x, __ctassert, __COUNTER__)
 #else
-#define	__CTASSERT(x)		__CTASSERT0(x, __ctassert, __LINE__)
+#define	__CTASSERT(x)		__CTASSERT99(x, __INCLUDE_LEVEL__, __LINE__)
+#define	__CTASSERT99(x, a, b)	__CTASSERT0(x, __CONCAT(__ctassert,a), \
+					       __CONCAT(_,b))
 #endif
 #define	__CTASSERT0(x, y, z)	__CTASSERT1(x, y, z) 
 #define	__CTASSERT1(x, y, z)	typedef char y ## z[/*CONSTCOND*/(x) ? 1 : -1] __unused

Reply via email to