diff options
Diffstat (limited to 'gcc/system.h')
-rw-r--r-- | gcc/system.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/system.h b/gcc/system.h index cf45db3..71d8a04 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -701,6 +701,24 @@ extern int vsnprintf (char *, size_t, const char *, va_list); /* Do not introduce a gmp.h dependency on the build system. */ #ifndef GENERATOR_FILE #include <gmp.h> + +class auto_mpz +{ +public: + auto_mpz () { mpz_init (m_mpz); } + ~auto_mpz () { mpz_clear (m_mpz); } + + operator mpz_t& () { return m_mpz; } + + auto_mpz (const auto_mpz &) = delete; + auto_mpz &operator= (const auto_mpz &) = delete; + + friend void mpz_clear (auto_mpz&) = delete; + friend void mpz_init (auto_mpz&) = delete; + +private: + mpz_t m_mpz; +}; #endif /* Get libiberty declarations. */ |