diff options
Diffstat (limited to 'test/SemaObjCXX/blocks.mm')
-rw-r--r-- | test/SemaObjCXX/blocks.mm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/SemaObjCXX/blocks.mm b/test/SemaObjCXX/blocks.mm index 6c2343df0e09b..c91fd103e1333 100644 --- a/test/SemaObjCXX/blocks.mm +++ b/test/SemaObjCXX/blocks.mm @@ -118,3 +118,29 @@ void f(int (^bl)(A* a)); // expected-note {{candidate function not viable: no kn void g() { f(^(B* b) { return 0; }); // expected-error {{no matching function for call to 'f'}} } + +namespace DependentReturn { + template<typename T> + void f(T t) { + (void)^(T u) { + if (t != u) + return t + u; + else + return; + }; + + (void)^(T u) { + if (t == u) + return; + else + return t + u; + }; + } + + struct X { }; + void operator+(X, X); + bool operator==(X, X); + bool operator!=(X, X); + + template void f<X>(X); +} |