BSD 4_4_Lite2 development
[unix-history] / usr / src / contrib / gcc-2.3.3 / cp-decl.h
CommitLineData
63635fb6
C
1/* In grokdeclarator, distinguish syntactic contexts of declarators. */
2enum decl_context
3{ NORMAL, /* Ordinary declaration */
4 FUNCDEF, /* Function definition */
5 PARM, /* Declaration of parm before function body */
6 FIELD, /* Declaration inside struct or union */
7 BITFIELD, /* Likewise but with specified width */
8 TYPENAME, /* Typename (inside cast or sizeof) */
9 MEMFUNCDEF /* Member function definition */
10};
11
12/* C++: Keep these around to reduce calls to `get_identifier'.
13 Identifiers for `this' in member functions and the auto-delete
14 parameter for destructors. */
15extern tree this_identifier, in_charge_identifier;
16
17/* Parsing a function declarator leaves a list of parameter names
18 or a chain or parameter decls here. */
19extern tree last_function_parms;
20
21/* A list of static class variables. This is needed, because a
22 static class variable can be declared inside the class without
23 an initializer, and then initialized, staticly, outside the class. */
24extern tree pending_statics;
25
26/* A list of objects which have constructors or destructors
27 which reside in the global scope. The decl is stored in
28 the TREE_VALUE slot and the initializer is stored
29 in the TREE_PURPOSE slot. */
30extern tree static_aggregates;
31
32/* A list of functions which were declared inline, but later had their
33 address taken. Used only for non-virtual member functions, since we can
34 find other functions easily enough. */
35extern tree pending_addressable_inlines;
36
37#ifdef SOS
38/* SOS extensions. */
39extern tree zlink_type, zret_type;
40extern tree zlink, zret;
41#endif
42
43#ifdef DEBUG_CP_BINDING_LEVELS
44/* Purely for debugging purposes. */
45extern int debug_bindings_indentation;
46#endif