[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
This revision was automatically updated to reflect the committed changes. CaseyCarter marked an inline comment as done. Closed by commit rL303889: [test] Remove workaround for C1XX conversion-to-nullptr bug (authored by CaseyCarter). Changed prior to commit: https://reviews.llvm.org/D33290?vs=99336=100265#toc Repository: rL LLVM https://reviews.llvm.org/D33290 Files: libcxx/trunk/test/support/poisoned_hash_helper.hpp libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp libcxx/trunk/test/support/test_workarounds.h Index: libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp === --- libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp +++ libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp @@ -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 - -#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::value, ""); -#else - static_assert(std::is_convertible ::value, ""); -#endif -} Index: libcxx/trunk/test/support/test_workarounds.h === --- libcxx/trunk/test/support/test_workarounds.h +++ libcxx/trunk/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: libcxx/trunk/test/support/poisoned_hash_helper.hpp === --- libcxx/trunk/test/support/poisoned_hash_helper.hpp +++ libcxx/trunk/test/support/poisoned_hash_helper.hpp @@ -50,11 +50,9 @@ // specializations of hash for nullptr t and all cv-unqualified // arithmetic, enumeration, and pointer types. using LibraryHashTypes = TypeList< -#if !defined(TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR) #if TEST_STD_VER > 14 decltype(nullptr), #endif -#endif bool, char, signed char, Index: libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp === --- libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp +++ libcxx/trunk/test/support/test.workarounds/c1xx_broken_nullptr_conversion_operator.pass.cpp @@ -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 - -#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 ::value, ""); -#else - static_assert(std::is_convertible ::value, ""); -#endif -} Index: libcxx/trunk/test/support/test_workarounds.h === --- libcxx/trunk/test/support/test_workarounds.h +++ libcxx/trunk/test/support/test_workarounds.h @@ -14,15 +14,14 @@ #include "test_macros.h" #if
[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
EricWF added a comment. @CaseyCarter Changes like this are good for post-commit review (ie just commit it) https://reviews.llvm.org/D33290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
EricWF accepted this revision. EricWF added a comment. This revision is now accepted and ready to land. LGTM. https://reviews.llvm.org/D33290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
CaseyCarter marked an inline comment as done. CaseyCarter added inline comments. Comment at: test/support/test_workarounds.h:21 #if defined(TEST_COMPILER_C1XX) -# define TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR -# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE STL_MSFT wrote: > Do you need to go update the tests that were using this? Yes, thanks, `poisoned_hash_helper.hpp` didn't make it into the commit. https://reviews.llvm.org/D33290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
CaseyCarter updated this revision to Diff 99336. CaseyCarter added a comment. Commit the change to the affected test code as well. https://reviews.llvm.org/D33290 Files: test/support/poisoned_hash_helper.hpp 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 - -#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::value, ""); -#else - static_assert(std::is_convertible ::value, ""); -#endif -} Index: test/support/poisoned_hash_helper.hpp === --- test/support/poisoned_hash_helper.hpp +++ test/support/poisoned_hash_helper.hpp @@ -50,11 +50,9 @@ // specializations of hash for nullptr t and all cv-unqualified // arithmetic, enumeration, and pointer types. using LibraryHashTypes = TypeList< -#if !defined(TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR) #if TEST_STD_VER > 14 decltype(nullptr), #endif -#endif bool, char, signed char, 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 - -#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 ::value, ""); -#else -
[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
STL_MSFT added inline comments. Comment at: test/support/test_workarounds.h:21 #if defined(TEST_COMPILER_C1XX) -# define TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR -# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE Do you need to go update the tests that were using this? https://reviews.llvm.org/D33290 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D33290: [libcxx] [test] Remove workaround for C1XX conversion-to-nullptr bug
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 - -#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::value, ""); -#else - static_assert(std::is_convertible ::value, ""); -#endif -} 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 - -#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 ::value, ""); -#else - static_assert(std::is_convertible ::value, ""); -#endif -} ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits