Author: caseycarter Date: Mon Jun 5 14:59:17 2017 New Revision: 304730 URL: http://llvm.org/viewvc/llvm-project?rev=304730&view=rev Log: [test] Remove workaround for C1XX empty parameter pack bug
Was VSO#109062. This bug was filed *4 years ago*. I submitted a workaround to enable the scoped_allocator_adaptor tests to pass. Bug fixed a week and a half later. This was either a waste of my time, or I've discovered that libc++ has magical bugfix-inducing powers. My money's on the latter. Removed: libcxx/trunk/test/support/test.workarounds/c1xx_empty_parameter_pack_expansion.pass.cpp Modified: libcxx/trunk/test/support/test_workarounds.h libcxx/trunk/test/support/uses_alloc_types.hpp Removed: libcxx/trunk/test/support/test.workarounds/c1xx_empty_parameter_pack_expansion.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test.workarounds/c1xx_empty_parameter_pack_expansion.pass.cpp?rev=304729&view=auto ============================================================================== --- libcxx/trunk/test/support/test.workarounds/c1xx_empty_parameter_pack_expansion.pass.cpp (original) +++ libcxx/trunk/test/support/test.workarounds/c1xx_empty_parameter_pack_expansion.pass.cpp (removed) @@ -1,49 +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_EMPTY_PARAMETER_PACK_EXPANSION. - -#include <type_traits> - -#include "test_workarounds.h" - -template<class T> -struct identity { - using type = T; -}; - -template<class...> struct list {}; - -// C1XX believes this function template is not viable when LArgs is an empty -// parameter pack. -template <class ...LArgs> -int f2(typename identity<LArgs>::type..., int i) { - return i; -} - -#ifdef TEST_WORKAROUND_C1XX_EMPTY_PARAMETER_PACK_EXPANSION -// C1XX believes this function template *is* viable when LArgs is an empty -// parameter pack. Conforming compilers believe the two overloads are -// ambiguous when LArgs is an empty pack. -template <class ...LArgs> -int f2(int i) { - return i; -} -#endif - -template <class ...LArgs, class ...Args> -int f1(list<LArgs...>, Args&&... args) { - return f2<LArgs const&...>(args...); -} - -int main() { - f1(list<>{}, 42); -} Modified: libcxx/trunk/test/support/test_workarounds.h URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/test_workarounds.h?rev=304730&r1=304729&r2=304730&view=diff ============================================================================== --- libcxx/trunk/test/support/test_workarounds.h (original) +++ libcxx/trunk/test/support/test_workarounds.h Mon Jun 5 14:59:17 2017 @@ -19,7 +19,6 @@ #if defined(TEST_COMPILER_C1XX) # 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 // VSO#119998 # endif Modified: libcxx/trunk/test/support/uses_alloc_types.hpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/support/uses_alloc_types.hpp?rev=304730&r1=304729&r2=304730&view=diff ============================================================================== --- libcxx/trunk/test/support/uses_alloc_types.hpp (original) +++ libcxx/trunk/test/support/uses_alloc_types.hpp Mon Jun 5 14:59:17 2017 @@ -257,13 +257,6 @@ private: return alloc; } -#ifdef TEST_WORKAROUND_C1XX_EMPTY_PARAMETER_PACK_EXPANSION - template <class ...LArgs> - static CtorAlloc getAllocatorFromPackImp(CtorAlloc const& alloc) { - return alloc; - } -#endif - bool has_alloc() const { return alloc_store.get_allocator() != nullptr; } const CtorAlloc *get_alloc() const { return alloc_store.get_allocator(); } public: _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits