NetBSD/gnu/usr.bin/g++/cc1plus/cplus-decl.h
1993-03-21 09:45:37 +00:00

41 lines
1.5 KiB
C

/* In grokdeclarator, distinguish syntactic contexts of declarators. */
enum decl_context
{ NORMAL, /* Ordinary declaration */
FUNCDEF, /* Function definition */
PARM, /* Declaration of parm before function body */
FIELD, /* Declaration inside struct or union */
TYPENAME, /* Typename (inside cast or sizeof) */
MEMFUNCDEF, /* Member function definition */
};
/* C++: Keep these around to reduce calls to `get_identifier'.
Identifiers for `this' in member functions and the auto-delete
parameter for destructors. */
extern tree this_identifier, in_charge_identifier;
/* Parsing a function declarator leaves a list of parameter names
or a chain or parameter decls here. */
extern tree last_function_parms;
/* A list of static class variables. This is needed, because a
static class variable can be declared inside the class without
an initializer, and then initialized, staticly, outside the class. */
extern tree pending_statics;
/* A list of objects which have constructors or destructors
which reside in the global scope. The decl is stored in
the TREE_VALUE slot and the initializer is stored
in the TREE_PURPOSE slot. */
extern tree static_aggregates;
/* A list of functions which were declared inline, but later had their
address taken. Used only for non-virtual member functions, since we can
find other functions easily enough. */
extern tree pending_addressable_inlines;
#ifdef SOS
/* SOS extensions. */
extern tree zlink_type, zret_type;
extern tree zlink, zret;
#endif