[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:
parent
602ee930bf
commit
c8342f2eef
|
@ -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);
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue