/* Garbage collection for the GNU compiler.
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
+Software Foundation; either version 3, or (at your option) any later
version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
for more details.
You should have received a copy of the GNU General Public License
-along with GCC; see the file COPYING. If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
#ifndef GCC_GGC_H
#define GCC_GGC_H
/* Free a complete GGC zone, destroying everything in it. */
extern void destroy_ggc_zone (struct alloc_zone *);
-/* Start a new GGC context. Memory allocated in previous contexts
- will not be collected while the new context is active. */
-extern void ggc_push_context (void);
-
-/* Finish a GC context. Any uncollected memory in the new context
- will be merged with the old context. */
-extern void ggc_pop_context (void);
-
struct ggc_pch_data;
/* Return a new ggc_pch_data structure. */
extern void ggc_free_overhead (void *);
extern void ggc_prune_overhead_list (void);
-extern void dump_ggc_loc_statistics (void);
+extern void dump_ggc_loc_statistics (bool);
/* Type-safe, C++-friendly versions of ggc_alloc() and gcc_calloc(). */
#define GGC_NEW(T) ((T *) ggc_alloc (sizeof (T)))
#define GGC_CNEWVEC(T, N) ((T *) ggc_alloc_cleared ((N) * sizeof(T)))
#define GGC_NEWVAR(T, S) ((T *) ggc_alloc ((S)))
#define GGC_CNEWVAR(T, S) ((T *) ggc_alloc_cleared ((S)))
+#define GGC_RESIZEVEC(T, P, N) ((T *) ggc_realloc ((P), (N) * sizeof (T)))
#define ggc_alloc_rtvec(NELT) \
((rtvec) ggc_alloc_zone (sizeof (struct rtvec_def) + ((NELT) - 1) \