Catch placeholder types in DefaultLvalueConversion
and DefaultFunctionArrayLvalueConversion. To prevent
significant regression for should-this-be-a-call fixits,
and to repair some such regression from the introduction of
bound member placeholders, make those placeholder checks
try to build calls appropriately. Harden the build-a-call
logic while we're at it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141738 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/SemaCXX/alignof-sizeof-reference.cpp b/test/SemaCXX/alignof-sizeof-reference.cpp
index 93ba203..1d65abb 100644
--- a/test/SemaCXX/alignof-sizeof-reference.cpp
+++ b/test/SemaCXX/alignof-sizeof-reference.cpp
@@ -8,14 +8,14 @@
static_assert(sizeof(r) == 1, "bad size");
}
-void f(); // expected-note{{candidate function}}
-void f(int); // expected-note{{candidate function}}
+void f(); // expected-note{{possible target for call}}
+void f(int); // expected-note{{possible target for call}}
void g() {
- sizeof(&f); // expected-error{{cannot resolve overloaded function 'f' from context}}
+ sizeof(&f); // expected-error{{reference to overloaded function could not be resolved; did you mean to call it?}}
}
-template<typename T> void f_template(); // expected-note{{candidate function}}
-template<typename T> void f_template(T*); // expected-note{{candidate function}}
+template<typename T> void f_template(); // expected-note{{possible target for call}}
+template<typename T> void f_template(T*); // expected-note{{possible target for call}}
void rdar9659191() {
- (void)alignof(f_template<int>); // expected-error{{cannot resolve overloaded function 'f_template' from context}}
+ (void)alignof(f_template<int>); // expected-error{{reference to overloaded function could not be resolved; did you mean to call it?}}
}