This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/6] add auto_sbitmap class
On July 24, 2016 1:44:44 PM GMT+02:00, tbsaunde+gcc@tbsaunde.org wrote:
>From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
>
>gcc/ChangeLog:
>
>2016-07-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
>
> * sbitmap.h (auto_sbitmap): New class.
OK.
Richard.
> gcc/sbitmap.h | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
>diff --git a/gcc/sbitmap.h b/gcc/sbitmap.h
>index c208171..d4a2918 100644
>--- a/gcc/sbitmap.h
>+++ b/gcc/sbitmap.h
>@@ -256,4 +256,25 @@ extern int bitmap_last_set_bit (const_sbitmap);
>
> extern void debug_bitmap (const_sbitmap);
> extern sbitmap sbitmap_realloc (sbitmap, unsigned int);
>+
>+/* a class that ties the lifetime of a sbitmap to its scope. */
>+class auto_sbitmap
>+{
>+public:
>+ explicit auto_sbitmap (unsigned int size) :
>+ m_bitmap (sbitmap_alloc (size)) {}
>+ ~auto_sbitmap () { sbitmap_free (m_bitmap); }
>+
>+ /* Allow calling sbitmap functions on our bitmap. */
>+ operator sbitmap () { return m_bitmap; }
>+
>+private:
>+ /* Prevent making a copy that refers to our sbitmap. */
>+ auto_sbitmap (const auto_sbitmap &);
>+ auto_sbitmap &operator = (const auto_sbitmap &);
>+
>+ /* The bitmap we are managing. */
>+ sbitmap m_bitmap;
>+};
>+
> #endif /* ! GCC_SBITMAP_H */