2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / stack.h
blob12161036691228df0de5c306904befc050c6bd39
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).
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.
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.
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. */
20 /* Summary: this file contains additional structures that layer
21 on top of obstacks for GNU C++. */
23 /* Stack of data placed on obstacks. */
25 struct stack_level
27 /* Pointer back to previous such level. */
28 struct stack_level *prev;
30 /* Point to obstack we should return to. */
31 struct obstack *obstack;
33 /* First place we start putting data. */
34 tree *first;
36 /* Number of entries we can have from `first'.
37 Right now we are dumb: if we overflow, abort. */
38 int limit;
41 struct stack_level *push_stack_level (struct obstack *, char *, int);
42 struct stack_level *pop_stack_level (struct stack_level *);