IA MCU psABI support: changes to libraries
[gcc.git] / gcc / et-forest.h
index fd25cbed194f550de73e5bd3d8c6a84e25363d9c..15c582d7ff33cbeed03da08598f1d9249d4fd134 100644 (file)
@@ -1,19 +1,19 @@
 /* Et-forest data structure implementation.
-   Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002-2015 Free Software Foundation, Inc.
 
-This program 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 of the License, or
-(at your option) any later version.
+   This program 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 of the License, or
+   (at your option) any later version.
 
-This program 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.
+   This program 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 this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
 
 /* This package implements ET forest data structure. Each tree in
    the structure maintains a tree structure and offers logarithmic time
@@ -48,9 +48,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #ifndef _ET_TREE_H
 #define _ET_TREE_H
 
-#include <ansidecl.h>
-#include <stddef.h>
-
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -69,6 +66,21 @@ struct et_node
 
   struct et_occ *rightmost_occ;        /* The rightmost occurrence.  */
   struct et_occ *parent_occ;   /* The occurrence of the parent node.  */
+
+  /* Pool allocation new operator.  */
+  inline void *operator new (size_t)
+  {
+    return pool.allocate ();
+  }
+
+  /* Delete operator utilizing pool allocation.  */
+  inline void operator delete (void *ptr)
+  {
+    pool.remove ((et_node *) ptr);
+  }
+
+  /* Memory allocation pool.  */
+  static pool_allocator<et_node> pool;
 };
 
 struct et_node *et_new_tree (void *data);