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