Mercurial > hg > CbC > CbC_llvm
diff clang/test/SemaCXX/invalid-template-base-specifier.cpp @ 207:2e18cbf3894f
LLVM12
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:07:14 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clang/test/SemaCXX/invalid-template-base-specifier.cpp Tue Jun 08 06:07:14 2021 +0900 @@ -0,0 +1,28 @@ +// RUN: %clang_cc1 -frecovery-ast -verify %s + +bool Foo(int *); // expected-note 3{{candidate function not viable}} + +template <typename T> +struct Crash : decltype(Foo(T())) { // expected-error {{no matching function for call to 'Foo'}} + Crash(){}; +}; + +void test() { Crash<int>(); } // expected-note {{in instantiation of template class}} + +template <typename T> +using Alias = decltype(Foo(T())); // expected-error {{no matching function for call to 'Foo'}} +template <typename T> +struct Crash2 : decltype(Alias<T>()) { // expected-note {{in instantiation of template type alias 'Alias' requested here}} + Crash2(){}; +}; + +void test2() { Crash2<int>(); } // expected-note {{in instantiation of template class 'Crash2<int>' requested here}} + +template <typename T> +class Base {}; +template <typename T> +struct Crash3 : Base<decltype(Foo(T()))> { // expected-error {{no matching function for call to 'Foo'}} + Crash3(){}; +}; + +void test3() { Crash3<int>(); } // expected-note {{in instantiation of template class}}