Add missing checks for _GLIBCXX_USE_C99_STDINT_TR1
authorJonathan Wakely <jwakely@redhat.com>
Thu, 26 Jul 2018 14:02:11 +0000 (15:02 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 26 Jul 2018 14:02:11 +0000 (15:02 +0100)
The throw_allocator extension depends on <tr1/random> which depends on
_GLIBCXX_USE_C99_STDINT_TR1.

The Transactional Memory support uses fixed-width integer types from
<stdint.h>.

* include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
(random_condition, throw_value_random, throw_allocator_random)
(std::hash<throw_value_random>): Do not define when <tr1/random> is
not usable.
* src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
define transactional memory support when <stdint.h> is not usable.

From-SVN: r263004

libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/throw_allocator.h
libstdc++-v3/src/c++11/cow-stdexcept.cc

index 66ee23d1fc78352f1a942d1935cac0c4ab9b57b3..285ea6b7dcaf471ec2fcdf7c98f3164795f94a01 100644 (file)
@@ -1,5 +1,12 @@
 2018-07-26  Jonathan Wakely  <jwakely@redhat.com>
 
+       * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1]
+       (random_condition, throw_value_random, throw_allocator_random)
+       (std::hash<throw_value_random>): Do not define when <tr1/random> is
+       not usable.
+       * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not
+       define transactional memory support when <stdint.h> is not usable.
+
        * include/bits/hashtable_policy.h (__detail::__clp2): Use faster
        implementation that doesn't depend on <stdint.h> types.
        * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use
index 7fd2ca149a0c27e6e08cc561df9bd280180bcee6..dd7c692222e493f8e5592420b3eff8ce19650179 100644 (file)
@@ -482,7 +482,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     }
   };
 
-
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
   /**
    *  @brief Base class for random probability control and throw.
    */
@@ -596,7 +596,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       return _S_e;
     }
   };
-
+#endif // _GLIBCXX_USE_C99_STDINT_TR1
 
   /**
    *  @brief Class with exception generation control. Intended to be
@@ -752,6 +752,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #endif
   };
 
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
   /// Type throwing via random condition.
   struct throw_value_random : public throw_value_base<random_condition>
   {
@@ -782,7 +783,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     operator=(throw_value_random&&) = default;
 #endif
   };
-
+#endif // _GLIBCXX_USE_C99_STDINT_TR1
 
   /**
    *  @brief Allocator class with logging and exception generation control.
@@ -920,6 +921,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       ~throw_allocator_limit() _GLIBCXX_USE_NOEXCEPT { }
     };
 
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
   /// Allocator throwing via random condition.
   template<typename _Tp>
     struct throw_allocator_random
@@ -940,6 +942,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
       ~throw_allocator_random() _GLIBCXX_USE_NOEXCEPT { }
     };
+#endif // _GLIBCXX_USE_C99_STDINT_TR1
 
 _GLIBCXX_END_NAMESPACE_VERSION
 } // namespace
@@ -965,6 +968,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
       }
     };
 
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
   /// Explicit specialization of std::hash for __gnu_cxx::throw_value_random.
   template<>
     struct hash<__gnu_cxx::throw_value_random>
@@ -979,6 +983,7 @@ namespace std _GLIBCXX_VISIBILITY(default)
        return __result;
       }
     };
+#endif
 } // end namespace std
 #endif
 
index a2df7892fd42bdcea263ab5037a824d5d729e203..54859d58820c3e1389eac06b36b7789cede488e4 100644 (file)
@@ -198,6 +198,7 @@ _GLIBCXX_END_NAMESPACE_VERSION
 // declared transaction-safe, so we just don't provide transactional clones
 // in this case.
 #if _GLIBCXX_USE_WEAK_REF
+#ifdef _GLIBCXX_USE_C99_STDINT_TR1
 
 extern "C" {
 
@@ -456,4 +457,5 @@ CTORDTOR(15underflow_error, std::underflow_error, runtime_error)
 
 }
 
+#endif  // _GLIBCXX_USE_C99_STDINT_TR1
 #endif  // _GLIBCXX_USE_WEAK_REF