[test] Remove workaround for C1XX conversion-to-nullptr bug
VSO#391542 "Types can't be convertible to nullptr_t" Also put internal bug numbers on the workarounds in test_workarounds.h for correlation. Differential Revision: https://reviews.llvm.org/D33290 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@303889 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -50,10 +50,8 @@ namespace PoisonedHashDetail {
|
|||||||
// specializations of hash for nullptr t and all cv-unqualified
|
// specializations of hash for nullptr t and all cv-unqualified
|
||||||
// arithmetic, enumeration, and pointer types.
|
// arithmetic, enumeration, and pointer types.
|
||||||
using LibraryHashTypes = TypeList<
|
using LibraryHashTypes = TypeList<
|
||||||
#if !defined(TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR)
|
|
||||||
#if TEST_STD_VER > 14
|
#if TEST_STD_VER > 14
|
||||||
decltype(nullptr),
|
decltype(nullptr),
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
bool,
|
bool,
|
||||||
char,
|
char,
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -14,15 +14,14 @@
|
|||||||
#include "test_macros.h"
|
#include "test_macros.h"
|
||||||
|
|
||||||
#if defined(TEST_COMPILER_EDG)
|
#if defined(TEST_COMPILER_EDG)
|
||||||
# define TEST_WORKAROUND_EDG_EXPLICIT_CONSTEXPR
|
# define TEST_WORKAROUND_EDG_EXPLICIT_CONSTEXPR // VSO#424280
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TEST_COMPILER_C1XX)
|
#if defined(TEST_COMPILER_C1XX)
|
||||||
# define TEST_WORKAROUND_C1XX_BROKEN_NULLPTR_CONVERSION_OPERATOR
|
# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE // VSO#117743
|
||||||
# define TEST_WORKAROUND_C1XX_BROKEN_IS_TRIVIALLY_COPYABLE
|
# define TEST_WORKAROUND_C1XX_EMPTY_PARAMETER_PACK_EXPANSION // VSO#109062
|
||||||
# define TEST_WORKAROUND_C1XX_EMPTY_PARAMETER_PACK_EXPANSION
|
|
||||||
# ifndef _MSC_EXTENSIONS
|
# ifndef _MSC_EXTENSIONS
|
||||||
# define TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK
|
# define TEST_WORKAROUND_C1XX_BROKEN_ZA_CTOR_CHECK // VSO#119998
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user