[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.

llvm-svn: 304730
This commit is contained in:
Casey Carter 2017-06-05 19:59:17 +00:00
parent 602ee930bf
commit c8342f2eef
3 changed files with 0 additions and 57 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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: