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