gnuc.h revision 0a1907d434839af6a9cb6329bbde60b237bf53dc
130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun/* $NetBSD: gnuc.h,v 1.4 2006/09/09 16:22:09 manu Exp $ */ 230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun/* Id: gnuc.h,v 1.4 2004/11/18 15:14:44 ludvigm Exp */ 430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun/* Define __P() macro, if necessary */ 630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#undef __P 730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifndef __P 830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#if __STDC__ 930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define __P(protos) protos 1030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#else 1130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define __P(protos) () 1230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 1330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 1430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 1530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun/* inline foo */ 1630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifdef __GNUC__ 1730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define inline __inline 1830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#else 1930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define inline 2030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 2130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun 2230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun/* 2330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * Handle new and old "dead" routine prototypes 2430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * 2530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * For example: 2630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * 2730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * __dead void foo(void) __attribute__((volatile)); 2830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun * 2930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun */ 3030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifdef __GNUC__ 3130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifndef __dead 3230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define __dead volatile 3330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 3430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) 3530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifndef __attribute__ 3630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define __attribute__(args) 3730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 3830d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 3930d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#else 4030d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifndef __dead 4130d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define __dead 4230d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 4330d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#ifndef __attribute__ 4430d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#define __attribute__(args) 4530d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 4630d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun#endif 4730d4e1f3d81ad9f7a1aa14ce6d2ceb5df56c15cdSelim Gurun