/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". */ /* $Id$ */ /* IDENTIFIER DEFINITION DESCRIPTOR */ #include "parameters.h" struct def { /* for ordinary tags */ struct def *next; int df_level; struct type *df_type; int df_sc; /* may be: GLOBAL, STATIC, EXTERN, TYPEDEF, FORMAL, AUTO, ENUM, LABEL */ char df_initialized; /* an initialization has been generated */ char df_alloc; /* 0, ALLOC_SEEN or ALLOC_DONE */ char df_used; /* set if idf is used */ char df_formal_array; /* to warn if sizeof is taken */ char *df_file; /* file containing the definition */ unsigned int df_line; /* line number of the definition */ #ifdef LINT char df_set; int df_firstbrace; /* brace number of its first occurrence */ int df_minlevel; /* the lowest level needed for this def */ #endif /* LINT */ arith df_address; }; #define ALLOC_SEEN 1 /* an allocating declaration has been seen */ #define ALLOC_DONE 2 /* the allocating declaration has been done */ #define REG_DEFAULT 0 /* register candidate, not declared as such */ #define REG_BONUS 10 /* register candidate, declared as such */ /* ALLOCDEF "def" 50 */