[coroutines] Better handling of placeholder types.

llvm-svn: 253731
diff --git a/clang/test/SemaCXX/coroutines.cpp b/clang/test/SemaCXX/coroutines.cpp
index 15536d8..53226f7 100644
--- a/clang/test/SemaCXX/coroutines.cpp
+++ b/clang/test/SemaCXX/coroutines.cpp
@@ -140,3 +140,18 @@
   template void await_template(outer); // expected-note {{instantiation}}
   template void await_template_2(outer);
 }
+
+namespace placeholder {
+  awaitable f(), f(int); // expected-note 2{{possible target}}
+  int g(), g(int); // expected-note 4{{possible target}}
+  void x() {
+    co_await f; // expected-error {{reference to overloaded function}}
+  }
+  void y() {
+    co_yield g; // expected-error {{reference to overloaded function}}
+  }
+  void z() {
+    co_await a;
+    co_return g; // expected-error {{reference to overloaded function}}
+  }
+}