xref: /original-bsd/old/pcc/lint/lpass1/lmanifest.h (revision 7518d483)
1 /*
2  *	@(#)lmanifest.h	1.2	(Berkeley)	03/29/83
3  */
4 /*	the key:
5 	LDI	defined and initialized: storage set aside
6 	LIB	defined on a library
7 	LDC	defined as a common region on UNIX
8 	LDX	defined by an extern: if ! pflag, same as LDI
9 	LRV	function returns a value
10 	LUV	function used in a value context
11 	LUE	function used in effects context
12 	LUM	mentioned somewhere other than at the declaration
13 	LST	defined as a static
14 	*/
15 # define LDI 0001
16 # define LIB 0002
17 # define LDC 0004
18 # define LDX 0010
19 # define LRV 0020
20 # define LUV 0040
21 # define LUE 0100
22 # define LUM 0200
23 # define LST 0400
24 
25 # define LFN 01000  /* filename record */
26 
27 	/* number of chars in NAME, and filename */
28 #ifndef FLEXNAMES
29 # define LCHNM 8
30 # define LFNM 14
31 #endif
32 
33 typedef struct ty {
34 	TWORD aty;
35 	short extra;
36 	short extra1;
37 	} ATYPE;
38 
39 #define X_NONAME 0x8000		/* for extra1, if structure has no name */
40 
41 typedef struct line {
42 	short decflag;
43 #ifndef FLEXNAMES
44 	char name[LCHNM];
45 #else
46 	char *name;
47 #endif
48 	short nargs;
49 	short fline;
50 	ATYPE type;
51 	} LINE;
52 
53 union rec {
54 	struct line l;
55 	struct {
56 		short decflag;
57 #ifndef FLEXNAMES
58 		char fn[LFNM];
59 #else
60 		char *fn;
61 #endif
62 		} f;
63 	};
64