diff options
Diffstat (limited to 'test/SemaCXX/pr30559.cpp')
-rw-r--r-- | test/SemaCXX/pr30559.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/SemaCXX/pr30559.cpp b/test/SemaCXX/pr30559.cpp new file mode 100644 index 0000000000..bcd2385fdd --- /dev/null +++ b/test/SemaCXX/pr30559.cpp @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -std=c++11 -fsyntax-only %s + +template < bool, class > struct A {}; +template < class, int > void f () {}; +template < class T, int > +decltype (f < T, 1 >) f (T t, typename A < t == 0, int >::type) {}; + +struct B {}; + +int main () +{ + f < B, 0 >; + return 0; +} + +template <typename T> +auto foo(T x) -> decltype((x == nullptr), *x) { + return *x; +} + +void bar() { + foo(new int); +} |