/* d-frontend.h -- D frontend interface to the gcc back-end. Copyright (C) 2019-2023 Free Software Foundation, Inc. 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. 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 GCC; see the file COPYING3. If not see . */ #ifndef GCC_D_FRONTEND_H #define GCC_D_FRONTEND_H /* These functions are defined in D runtime. */ extern "C" int rt_init (void); extern "C" int rt_term (void); extern "C" void gc_disable (void); extern "C" void *gc_malloc (size_t sz, unsigned ba = 0, const void *ti = NULL); extern "C" void gc_free (void *); extern "C" void gc_collect (void); template inline T * d_gc_malloc (void) { void *ptr = gc_malloc (sizeof (T)); return new(ptr) T (); } #endif