re PR c++/53000 (Conditional operator does not behave as standardized)
authorDaniel Kruegler <daniel.kruegler@gmail.com>
Wed, 15 Oct 2014 21:08:59 +0000 (21:08 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Wed, 15 Oct 2014 21:08:59 +0000 (21:08 +0000)
2014-10-15  Daniel Krugler  <daniel.kruegler@gmail.com>

* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
Enable tests predicated on PR c++/53000.

From-SVN: r216287

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc

index 89b86eb1b208a720e71e740ac0459c46e72be90c..b215f004401c7c7e14540ef3fddd407ff917caad 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-15  Daniel Krugler  <daniel.kruegler@gmail.com>
+
+       * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
+       Enable tests predicated on PR c++/53000.
+
 2014-10-15  François Dumont  <fdumont@gcc.gnu.org>
            Jonathan Wakely  <jwakely@redhat.com>
 
index 3a4251cb736ecc81189d39356b9eb2a661659987..7f83b8cfc7c13a8ebfbdd4a97bada656094ccabe 100644 (file)
@@ -21,9 +21,6 @@
 #include <type_traits>
 #include <initializer_list>
 
-//TODO: Uncomment this once gcc bug 53000 has been resolved:
-//#define HAS_53000_FIXED
-
 // Helper types:
 struct has_type_impl
 {
@@ -246,15 +243,17 @@ static_assert(is_type<std::common_type<UConv1, const Abstract*&>,
 static_assert(is_type<std::common_type<UConv1, UConv2>, Abstract*>(), "");
 static_assert(is_type<std::common_type<UConv1&, UConv2&>, Abstract*>(), "");
 
-#ifdef HAS_53000_FIXED
 static_assert(is_type<std::common_type<Abstract&&, Abstract&&>,
              Abstract>(), "");
 static_assert(is_type<std::common_type<const Abstract&&,
+                                      const Abstract&&>, Abstract>(), "");
+static_assert(is_type<std::common_type<volatile Abstract&&,
                                       volatile Abstract&&>, Abstract>(), "");
 static_assert(is_type<std::common_type<Ukn&&, Ukn&&>, Ukn>(), "");
-static_assert(is_type<std::common_type<const Ukn&&, volatile Ukn&&>,
+static_assert(is_type<std::common_type<const Ukn&&, const Ukn&&>,
+             Ukn>(), "");
+static_assert(is_type<std::common_type<volatile Ukn&&, volatile Ukn&&>,
              Ukn>(), "");
-#endif
 
 static_assert(is_type<std::common_type<X1, X2>, RX12>(), "");
 static_assert(is_type<std::common_type<X2, X1>, RX21>(), "");