diff options
Diffstat (limited to 'test/CXX/temp/temp.spec/temp.inst/p7.cpp')
-rw-r--r-- | test/CXX/temp/temp.spec/temp.inst/p7.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CXX/temp/temp.spec/temp.inst/p7.cpp b/test/CXX/temp/temp.spec/temp.inst/p7.cpp new file mode 100644 index 000000000000..5145dafdc5b4 --- /dev/null +++ b/test/CXX/temp/temp.spec/temp.inst/p7.cpp @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 -verify -std=c++17 %s + +template<typename T> constexpr int f() { return T::value; } // expected-error {{'::'}} +template<bool B, typename T> void g(decltype(B ? f<T>() : 0)); +template<bool B, typename T> void g(...); +template<bool B, typename T> void h(decltype(int{B ? f<T>() : 0})); // expected-note {{instantiation of}} +template<bool B, typename T> void h(...); +void x() { + g<false, int>(0); // ok + g<true, int>(0); // ok + h<false, int>(0); // expected-note {{while substituting}} +} |