Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
[dragonfly.git] / contrib / gcc-3.4 / gcc / stack.h
1 /* stack.h - structed access to object stacks
2    Copyright (C) 1988, 2000, 2003 Free Software Foundation, Inc.
3    Contributed by Michael Tiemann (tiemann@cygnus.com).
4
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2, or (at your option) any
8 later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.  */
19
20 /* Summary: this file contains additional structures that layer
21    on top of obstacks for GNU C++.  */
22
23 /* Stack of data placed on obstacks.  */
24
25 struct stack_level
26 {
27   /* Pointer back to previous such level.  */
28   struct stack_level *prev;
29
30   /* Point to obstack we should return to.  */
31   struct obstack *obstack;
32
33   /* First place we start putting data.  */
34   tree *first;
35
36   /* Number of entries we can have from `first'.
37      Right now we are dumb: if we overflow, abort.  */
38   int limit;
39 };
40
41 struct stack_level *push_stack_level (struct obstack *, char *, int);
42 struct stack_level *pop_stack_level (struct stack_level *);