Pristine Ack-5.5
[Ack-5.5.git] / lang / cem / cemcom / l_outdef.str
1 /*
2  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
3  * See the copyright notice in the ACK home directory, in the file "Copyright".
4  */
5 /* $Id: l_outdef.str,v 3.4 1994/06/24 12:04:53 ceriel Exp $ */
6 /*      Lint output definition  */
7
8 /* Values for ar_class */
9 #define ArgFormal       0
10 #define ArgExpr         1               /* actual */
11 #define ArgConst        2               /* integer constant */
12 #define ArgString       3               /* string */
13 #define ArgEllipsis     4               /* ellipsis */
14
15 struct argument {
16         struct argument *next;
17         struct type *ar_type;
18         int ar_class;                   /* for constant parameters */
19         union const_arg {
20                 arith ca_value;
21                 struct {
22                         char *cas_value;
23                         int cas_len;
24                 } ca_string;
25         } ar_object;
26 };
27
28 #define CAA_VALUE       ar_object.ca_value
29 #define CAS_VALUE       ar_object.ca_string.cas_value
30 #define CAS_LEN         ar_object.ca_string.cas_len
31
32 /* ALLOCDEF "argument" 10 */
33
34 struct outdef {
35         char od_class;
36         int od_statnr;
37         char *od_name;
38         char *od_file;
39         unsigned int od_line;
40         int od_nrargs;
41         struct argument *od_arg;        /* a list of the types of the
42                                          * formal parameters */
43         int od_valreturned;
44                 /* NOVALRETURNED, VALRETURNED, NORETURN; see l_lint.h */
45         int od_valused;
46                 /* USED, IGNORED, SET, VOIDED; see l_lint.h */
47         struct type *od_type;
48 };