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