pointer-set.h revision 225736
155714Skris/* Set operations on pointers
255714Skris   Copyright (C) 2004 Free Software Foundation, Inc.
355714Skris
455714SkrisThis file is part of GCC.
555714Skris
655714SkrisGCC is free software; you can redistribute it and/or modify it under
755714Skristhe terms of the GNU General Public License as published by the Free
8280304SjkimSoftware Foundation; either version 2, or (at your option) any later
955714Skrisversion.
1055714Skris
1155714SkrisGCC is distributed in the hope that it will be useful, but WITHOUT ANY
1255714SkrisWARRANTY; without even the implied warranty of MERCHANTABILITY or
1355714SkrisFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1455714Skrisfor more details.
15280304Sjkim
1655714SkrisYou should have received a copy of the GNU General Public License
1755714Skrisalong with GCC; see the file COPYING.  If not, write to the Free
1855714SkrisSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
1955714Skris02110-1301, USA.  */
2055714Skris
2155714Skris#ifndef POINTER_SET_H
22280304Sjkim#define POINTER_SET_H
2355714Skris
2455714Skrisstruct pointer_set_t;
2555714Skrisstruct pointer_set_t *pointer_set_create (void);
2655714Skrisvoid pointer_set_destroy (struct pointer_set_t *pset);
2755714Skris
2855714Skrisint pointer_set_contains (struct pointer_set_t *pset, void *p);
2955714Skrisint pointer_set_insert (struct pointer_set_t *pset, void *p);
3055714Skrisvoid pointer_set_traverse (struct pointer_set_t *, bool (*) (void *, void *),
3155714Skris			   void *);
3255714Skris
3355714Skrisstruct pointer_map_t;
3455714Skrisstruct pointer_map_t *pointer_map_create (void);
3555714Skrisvoid pointer_map_destroy (struct pointer_map_t *pmap);
3655714Skris
37280304Sjkimvoid **pointer_map_contains (struct pointer_map_t *pmap, void *p);
3855714Skrisvoid **pointer_map_insert (struct pointer_map_t *pmap, void *p);
3955714Skrisvoid pointer_map_traverse (struct pointer_map_t *,
40280304Sjkim			   bool (*) (void *, void **, void *), void *);
4155714Skris
4255714Skris#endif  /* POINTER_SET_H  */
4355714Skris