[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug

Casey Carter via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed May 17 10:30:48 PDT 2017


CaseyCarter created this revision.

VSO#391542 "Types can't be convertible to nullptr_t," which will be fixed in the next release of Visual C++.

Also put internal bug numbers on the workarounds in test_workarounds.h for ease of correlation.


https://reviews.llvm.org/D33290

Files:
  test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp
  test/support/test_workarounds.h


Index: test/support/test_workarounds.h
===================================================================
--- test/support/test_workarounds.h
+++ test/support/test_workarounds.h
@@ -14,15 +14,14 @@
 #include "test_macros.h"
 
 #if defined(TEST_COMPILER_EDG)
-# define TEST_WORKAROUND_EDG_EXPLICIT_CONSTEXPR
+# define TEST_WORKAROUND_EDG_EXPLICIT_CONSTEXPR // VSO#424280
 #endif
 
 #if defined(TEST_COMPILER_C1XX)
-# define TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR
-# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE
-# define TEST_WORKAROUND_C1XX_EMPTY_PARAMETER_PACK_EXPANSION
+# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE // VSO#117743
+# define TEST_WORKAROUND_C1XX_EMPTY_PARAMETER_PACK_EXPANSION // VSO#109062
 # ifndef _MSC_EXTENSIONS
-#  define TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
+#  define TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK // VSO#119998
 # endif
 #endif
 
Index: test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp
===================================================================
--- test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// UNSUPPORTED: c++98, c++03
-
-// Verify TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR.
-
-#include <type_traits>
-
-#include "test_workarounds.h"
-
-struct ConvertsToNullptr {
-  using DestType = decltype(nullptr);
-  operator DestType() const { return nullptr; }
-};
-
-int main() {
-#if defined(TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR)
-  static_assert(!std::is_convertible<ConvertsToNullptr, decltype(nullptr)>::value, "");
-#else
-  static_assert(std::is_convertible<ConvertsToNullptr, decltype(nullptr)>::value, "");
-#endif
-}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33290.99326.patch
Type: text/x-patch
Size: 2113 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170517/e0da4979/attachment.bin>


More information about the cfe-commits mailing list