aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-04-22 15:27:54 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-04-22 15:27:54 +0000
commit6a4b1a00fa29aa4f153071a8a663be4379cc75b9 (patch)
treee64e69f48c03c33c1604e70fbba10dc93c057c8d
parentea679d553f0c8791b2df470c138c6505a3be1cfc (diff)
downloadgcc-6a4b1a00fa29aa4f153071a8a663be4379cc75b9.zip
gcc-6a4b1a00fa29aa4f153071a8a663be4379cc75b9.tar.gz
gcc-6a4b1a00fa29aa4f153071a8a663be4379cc75b9.tar.bz2
type_traits (is_signed): Simplify.
2013-04-22 Paolo Carlini <paolo.carlini@oracle.com> * include/std/type_traits (is_signed): Simplify. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error line numbers. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/declval/requirements/1_neg.cc: Likewise. From-SVN: r198144
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/include/std/type_traits11
-rw-r--r--libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc4
5 files changed, 17 insertions, 13 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index ff95635..1031363 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,14 @@
2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
+ * include/std/type_traits (is_signed): Simplify.
+ * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
+ Adjust dg-error line numbers.
+ * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
+ Likewise.
+ * testsuite/20_util/declval/requirements/1_neg.cc: Likewise.
+
+2013-04-22 Paolo Carlini <paolo.carlini@oracle.com>
+
N3669
* include/std/complex (complex<float>::real, complex<float>::imag,
complex<double>::real, complex<double>::imag,
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index 5bff0ab..79a9b6a 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -538,18 +538,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ };
template<typename _Tp,
- bool = is_integral<_Tp>::value,
- bool = is_floating_point<_Tp>::value>
+ bool = is_arithmetic<_Tp>::value>
struct __is_signed_helper
: public false_type { };
template<typename _Tp>
- struct __is_signed_helper<_Tp, false, true>
- : public true_type { };
-
- template<typename _Tp>
- struct __is_signed_helper<_Tp, true, false>
- : public integral_constant<bool, static_cast<bool>(_Tp(-1) < _Tp(0))>
+ struct __is_signed_helper<_Tp, true>
+ : public integral_constant<bool, _Tp(-1) < _Tp(0)>
{ };
/// is_signed
diff --git a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
index 348964a..02347d1 100644
--- a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc
@@ -19,7 +19,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-error "static assertion failed" "" { target *-*-* } 1857 }
+// { dg-error "static assertion failed" "" { target *-*-* } 1852 }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
index 7da7d1d..b2d5d77 100644
--- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc
@@ -48,5 +48,5 @@ void test01()
// { dg-error "required from here" "" { target *-*-* } 40 }
// { dg-error "required from here" "" { target *-*-* } 42 }
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1599 }
-// { dg-error "declaration of" "" { target *-*-* } 1563 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1594 }
+// { dg-error "declaration of" "" { target *-*-* } 1558 }
diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
index c769aa9..8980fe1 100644
--- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc
@@ -48,5 +48,5 @@ void test01()
// { dg-error "required from here" "" { target *-*-* } 40 }
// { dg-error "required from here" "" { target *-*-* } 42 }
-// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1517 }
-// { dg-error "declaration of" "" { target *-*-* } 1481 }
+// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1512 }
+// { dg-error "declaration of" "" { target *-*-* } 1476 }