/* Null garbage collection for the GNU compiler.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2003, 2004, 2005, 2007, 2010
+ Free Software Foundation, Inc.
- This file is part of GNU CC.
+ This file is part of GCC.
- GNU CC 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)
+ 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 3, or (at your option)
any later version.
- GNU CC is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+ GCC is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
You should have received a copy of the GNU General Public License
- along with GNU CC; 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/>. */
-/* This version is used by the gen* programs, where we don't really
- need GC at all. This prevents problems with pulling in all the
- tree stuff. */
-
-/* We are used by gengenrtl, before genrtl.h exists. But we don't
- need it either. */
-#define NO_GENRTL_H
+/* This version is used by the gen* programs and certain language-specific
+ targets (such as java), where we don't really need GC at all.
+ This prevents problems with pulling in all the tree stuff. */
+#ifdef GENERATOR_FILE
+#include "bconfig.h"
+#else
#include "config.h"
+#endif
+
#include "system.h"
-#include "rtl.h"
+#include "coretypes.h"
#include "ggc.h"
-/* For now, keep using the old obstack scheme in the gen* programs. */
-int ggc_p = 0;
+void *
+ggc_alloc_typed_stat (enum gt_types_enum ARG_UNUSED (gte), size_t size
+ MEM_STAT_DECL)
+{
+ return xmalloc (size);
+}
-rtx
-ggc_alloc_rtx (nslots)
- int nslots;
+void *
+ggc_internal_alloc_stat (size_t size MEM_STAT_DECL)
{
- int size = sizeof(struct rtx_def) + (nslots - 1) * sizeof(rtunion);
- rtx n;
+ return xmalloc (size);
+}
- n = (rtx) xmalloc (size);
- bzero ((char *) n, size);
+void *
+ggc_internal_cleared_alloc_stat (size_t size MEM_STAT_DECL)
+{
+ return xcalloc (size, 1);
+}
- return n;
+void *
+ggc_realloc_stat (void *x, size_t size MEM_STAT_DECL)
+{
+ return xrealloc (x, size);
}
-rtvec
-ggc_alloc_rtvec (nelt)
- int nelt;
+void
+ggc_free (void *p)
{
- int size = sizeof (struct rtvec_def) + (nelt - 1) * sizeof (rtunion);
- rtvec v;
+ free (p);
+}
- v = (rtvec) xmalloc (size);
- bzero ((char *) v, size);
+struct alloc_zone
+{
+ int dummy;
+};
+
+struct alloc_zone rtl_zone;
+struct alloc_zone tree_zone;
+struct alloc_zone tree_id_zone;
+
+#if defined (GGC_ZONE) && !defined (GENERATOR_FILE)
+
+void *
+ggc_internal_alloc_zone_stat (size_t size,
+ struct alloc_zone * ARG_UNUSED(z) MEM_STAT_DECL)
+{
+ return xmalloc (size);
+}
- return v;
+void *
+ggc_internal_cleared_alloc_zone_stat (size_t size,
+ struct alloc_zone * ARG_UNUSED(z)
+ MEM_STAT_DECL)
+{
+ return xcalloc (size, 1);
}
+
+#endif