10a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* $NetBSD: gnuc.h,v 1.4 2006/09/09 16:22:09 manu Exp $ */ 20a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 30a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* Id: gnuc.h,v 1.4 2004/11/18 15:14:44 ludvigm Exp */ 40a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 50a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* Define __P() macro, if necessary */ 60a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#undef __P 70a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifndef __P 80a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#if __STDC__ 90a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define __P(protos) protos 100a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#else 110a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define __P(protos) () 120a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 130a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 140a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 150a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* inline foo */ 160a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifdef __GNUC__ 170a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define inline __inline 180a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#else 190a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define inline 200a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 210a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang 220a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang/* 230a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * Handle new and old "dead" routine prototypes 240a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 250a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * For example: 260a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 270a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * __dead void foo(void) __attribute__((volatile)); 280a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang * 290a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang */ 300a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifdef __GNUC__ 310a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifndef __dead 320a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define __dead volatile 330a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 340a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) 350a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifndef __attribute__ 360a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define __attribute__(args) 370a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 380a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 390a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#else 400a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifndef __dead 410a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define __dead 420a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 430a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#ifndef __attribute__ 440a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#define __attribute__(args) 450a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 460a1907d434839af6a9cb6329bbde60b237bf53dcChung-yih Wang#endif 47