diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/variadic-crash4.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/variadic-crash4.C | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-crash4.C b/gcc/testsuite/g++.dg/cpp0x/variadic-crash4.C new file mode 100644 index 00000000000..2974fe933e1 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/variadic-crash4.C @@ -0,0 +1,14 @@ +// PR c++/68884 +// { dg-do compile { target c++11 } } + +namespace std { + template <typename _Tp, _Tp __v> struct A { static constexpr _Tp value = __v; }; +typedef A<bool, true> true_type; +} +template <int> struct VsA; +template <class ValueType> struct ValueTemplate { + template <template <ValueType> class, class> struct IsInstanceOf; + template <template <ValueType> class TemplateA, ValueType... TypesA> + struct IsInstanceOf<TemplateA, TemplateA<TypesA...>> : std::true_type {}; +}; +bool foo = ValueTemplate<int>::IsInstanceOf<VsA, VsA<0>>::value; |