118334Speter/* Variables and structures for declaration processing.
2169689Skan   Copyright (C) 1993, 2000, 2002, 2004, 2005 Free Software Foundation, Inc.
318334Speter
4132718SkanThis file is part of GCC.
518334Speter
6132718SkanGCC is free software; you can redistribute it and/or modify
718334Speterit under the terms of the GNU General Public License as published by
818334Speterthe Free Software Foundation; either version 2, or (at your option)
918334Speterany later version.
1018334Speter
11132718SkanGCC is distributed in the hope that it will be useful,
1218334Speterbut WITHOUT ANY WARRANTY; without even the implied warranty of
1318334SpeterMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1418334SpeterGNU General Public License for more details.
1518334Speter
1618334SpeterYou should have received a copy of the GNU General Public License
17132718Skanalong with GCC; see the file COPYING.  If not, write to
18169689Skanthe Free Software Foundation, 51 Franklin Street, Fifth Floor,
19169689SkanBoston, MA 02110-1301, USA.  */
2018334Speter
2118334Speter/* In grokdeclarator, distinguish syntactic contexts of declarators.  */
2218334Speterenum decl_context
2318334Speter{ NORMAL,			/* Ordinary declaration */
2418334Speter  FUNCDEF,			/* Function definition */
2518334Speter  PARM,				/* Declaration of parm before function body */
2618334Speter  CATCHPARM,			/* Declaration of catch parm */
2718334Speter  FIELD,			/* Declaration inside struct or union */
2818334Speter  BITFIELD,			/* Likewise but with specified width */
2918334Speter  TYPENAME,			/* Typename (inside cast or sizeof)  */
30261188Spfg  /* APPLE LOCAL blocks 6339747 */
31261188Spfg  BLOCKDEF,			/* Declaratin of block literal */
3218334Speter  MEMFUNCDEF			/* Member function definition */
3318334Speter};
3418334Speter
3518334Speter/* We need this in here to get the decl_context definition.  */
36169689Skanextern tree grokdeclarator (const cp_declarator *,
37169689Skan			    const cp_decl_specifier_seq *,
38169689Skan			    enum decl_context, int, tree*);
39261188Spfg/* APPLE LOCAL radar 4721858 */
40261188Spfgextern void emit_instantiate_pending_templates (location_t *);
41261188Spfg/* APPLE LOCAL blocks 6040305 (ce) */
42261188Spfgextern tree grokparms (cp_parameter_declarator *first_parm, tree *parms);
43