re PR libstdc++/53578 (include/ext/concurrence.h relies on ill-formed narrowing conve...
authorJonathan Wakely <jwakely.gcc@gmail.com>
Fri, 15 Jun 2012 00:27:29 +0000 (00:27 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 15 Jun 2012 00:27:29 +0000 (01:27 +0100)
PR libstdc++/53578
* include/ext/concurrence.h (__recursive_mutex::_S_destroy): Fix
narrowing conversion.
* include/std/mutex (__recursive_mutex_base::_S_destroy): Likewise.

From-SVN: r188646

libstdc++-v3/ChangeLog
libstdc++-v3/include/ext/concurrence.h
libstdc++-v3/include/std/mutex

index 24543a0b83cb602f494fc79a7ca0d11e86a64ec1..0aeb6c06223bfff72ed3759dd870537f63b25164 100644 (file)
@@ -1,3 +1,10 @@
+2012-06-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
+
+       PR libstdc++/53578
+       * include/ext/concurrence.h (__recursive_mutex::_S_destroy): Fix
+       narrowing conversion.
+       * include/std/mutex (__recursive_mutex_base::_S_destroy): Likewise.
+
 2012-06-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
        PR libstdc++/53270
index 22c433bff33c9d03c50a364cba298197a6b5c1ae..25e218b1108b2db0ccf3f479b4efce9e8573fdbe 100644 (file)
@@ -284,7 +284,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     // matches a gthr-win32.h recursive mutex
     template<typename _Rm>
-      static typename __enable_if<sizeof(&_Rm::sema), void>::__type
+      static typename __enable_if<(bool)sizeof(&_Rm::sema), void>::__type
       _S_destroy(_Rm* __mx)
       {
         __gthread_mutex_t __tmp;
@@ -293,7 +293,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     // matches a recursive mutex with a member 'actual'
     template<typename _Rm>
-      static typename __enable_if<sizeof(&_Rm::actual), void>::__type
+      static typename __enable_if<(bool)sizeof(&_Rm::actual), void>::__type
       _S_destroy(_Rm* __mx)
       { __gthread_mutex_destroy(&__mx->actual); }
 
index a7ebace2c889c17218a90780a84629638c89f4b5..34d64c5b65f2f8ab9f79124427419e0bd18d7798 100644 (file)
@@ -116,13 +116,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     // matches a recursive mutex with a member 'actual'
     template<typename _Rm>
-      static typename enable_if<sizeof(&_Rm::actual), void>::type
+      static typename enable_if<(bool)sizeof(&_Rm::actual), void>::type
       _S_destroy(_Rm* __mx)
       { __gthread_mutex_destroy(&__mx->actual); }
 
     // matches a gthr-win32.h recursive mutex
     template<typename _Rm>
-      static typename enable_if<sizeof(&_Rm::sema), void>::type
+      static typename enable_if<(bool)sizeof(&_Rm::sema), void>::type
       _S_destroy(_Rm* __mx)
       {
         __gthread_mutex_t __tmp;