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