diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-21 07:22:31 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-02-21 07:22:31 +0000 |
| commit | 7fa88bb8449ae2f5708b04c063b2874230f05135 (patch) | |
| tree | 83a011c7f1d2017916cac8dd9ec234eff010ed6d /clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp | |
| parent | d88389aa7ec50d944c2002392db6b135a54a95c1 (diff) | |
| download | bcm5719-llvm-7fa88bb8449ae2f5708b04c063b2874230f05135.tar.gz bcm5719-llvm-7fa88bb8449ae2f5708b04c063b2874230f05135.zip | |
When deducing an array bound from the length of an initializer list, don't
assume the bound has a non-dependent integral type.
llvm-svn: 295698
Diffstat (limited to 'clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp')
| -rw-r--r-- | clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp b/clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp index 4afbd2d7c16..8c96fb4fd0f 100644 --- a/clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp +++ b/clang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp @@ -194,11 +194,9 @@ namespace transform_params { A a(qn, qn); // expected-error {{no matching constructor for initialization of 'transform_params::A<int, 12, Q, &transform_params::n>'}} static_assert(a.v == 12); - // FIXME: This causes a crash right now (not class template deduction related). -#if 0 - template<typename ...T> struct B { - template<T ...V> B(T (&...p)[V]); + // FIXME: This should be accepted. + template<typename ...T> struct B { // expected-note {{candidate}} + template<T ...V> B(const T (&...p)[V]); // expected-note {{substitution failure}} }; - B b({1, 2, 3}, {"foo", "bar"}, {'x', 'y', 'z', 'w'}); -#endif + B b({1, 2, 3}, {"foo", "bar"}, {'x', 'y', 'z', 'w'}); // expected-error {{no viable constructor or deduction guide}} } |

