From 9f843aecc23981aec6ed1eaa8be06e6786a47f0d Mon Sep 17 00:00:00 2001
From: Roberto Bagnara <bagnara@cs.unipr.it>
Date: Wed, 19 Dec 2012 08:42:19 +0100
Subject: [PATCH] GMP version 5.1.0 (and, presumably, later versions) defines std::numeric_limits.

---
 src/mp_std_bits.cc      |    6 ++++++
 src/mp_std_bits_defs.hh |    6 ++++++
 2 files changed, 12 insertions(+), 0 deletions(-)

--- src/mp_std_bits.cc
+++ src/mp_std_bits.cc
@@ -25,6 +25,9 @@ site: http://bugseng.com/products/ppl/ . */
 #include "ppl-config.h"
 #include "mp_std_bits_defs.hh"
 
+#if __GNU_MP_VERSION < 5 \
+  || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
+
 const bool std::numeric_limits<mpz_class>::is_specialized;
 const int std::numeric_limits<mpz_class>::digits;
 const int std::numeric_limits<mpz_class>::digits10;
@@ -70,3 +73,6 @@ const bool std::numeric_limits<mpq_class>::is_modulo;
 const bool std::numeric_limits<mpq_class>::traps;
 const bool std::numeric_limits<mpq_class>::tininess_before;
 const std::float_round_style std::numeric_limits<mpq_class>::round_style;
+
+#endif // __GNU_MP_VERSION < 5
+       // || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
--- src/mp_std_bits.defs.hh.orig	2013-02-16 17:19:52.254341676 +0100
+++ src/mp_std_bits.defs.hh	2013-02-16 17:20:49.171965855 +0100
@@ -38,6 +38,9 @@ void swap(mpz_class& x, mpz_class& y);
 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
 void swap(mpq_class& x, mpq_class& y);
 
+#if __GNU_MP_VERSION < 5 \
+	|| (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
+
 namespace std {
 
 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
@@ -164,6 +167,9 @@ public:
 
 } // namespace std
 
+#endif	// __GNU_MP_VERSION < 5
+	// || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1
+
 #include "mp_std_bits.inlines.hh"
 
 #endif // !defined(PPL_mp_std_bits_defs_hh)
