xref: /minix3/external/bsd/bind/dist/contrib/nslint-3.0a2/lbl/gnuc.h (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1 /*	$NetBSD: gnuc.h,v 1.1.1.3 2014/12/10 03:34:34 christos Exp $	*/
2 
3 /* @(#) Id: gnuc.h,v 1.4 2006/04/30 03:58:45 leres Exp  (LBL) */
4 
5 /* Define __P() macro, if necessary */
6 #ifndef __P
7 #if __STDC__
8 #define __P(protos) protos
9 #else
10 #define __P(protos) ()
11 #endif
12 #endif
13 
14 /* inline foo */
15 #ifdef __GNUC__
16 #define inline __inline
17 #else
18 #define inline
19 #endif
20 
21 /*
22  * Handle new and old "dead" routine prototypes
23  *
24  * For example:
25  *
26  *	__dead void foo(void) __attribute__((noreturn));
27  *
28  */
29 #ifdef __GNUC__
30 #ifndef __dead
31 #if __GNUC__ >= 4
32 #define __dead
33 #define noreturn __noreturn__
34 #else
35 #define __dead volatile
36 #define noreturn volatile
37 #endif
38 #endif
39 #if __GNUC__ < 2  || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
40 #ifndef __attribute__
41 #define __attribute__(args)
42 #endif
43 #endif
44 #else
45 #ifndef __dead
46 #define __dead
47 #endif
48 #ifndef __attribute__
49 #define __attribute__(args)
50 #endif
51 #endif
52