summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/overload-call.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-03-07 23:17:44 +0000
committerDouglas Gregor <dgregor@apple.com>2010-03-07 23:17:44 +0000
commit1ce52caf0dfd18b8a2e04eddd9e381136ac81c21 (patch)
tree4b3d1cdcaf5f405c116315ae48a4769a1f3e4362 /clang/test/SemaCXX/overload-call.cpp
parent5cdbd7064cb6b4732df7d9e56bb66199877b4a2a (diff)
downloadbcm5719-llvm-1ce52caf0dfd18b8a2e04eddd9e381136ac81c21.tar.gz
bcm5719-llvm-1ce52caf0dfd18b8a2e04eddd9e381136ac81c21.zip
Reference binding via user-defined conversion can compute a binding
that is not reference-related (because it requires another implicit conversion to which we can find). Fixes PR6483. llvm-svn: 97922
Diffstat (limited to 'clang/test/SemaCXX/overload-call.cpp')
-rw-r--r--clang/test/SemaCXX/overload-call.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/overload-call.cpp b/clang/test/SemaCXX/overload-call.cpp
index 77e0908ef46..c286028c29a 100644
--- a/clang/test/SemaCXX/overload-call.cpp
+++ b/clang/test/SemaCXX/overload-call.cpp
@@ -386,3 +386,23 @@ namespace DerivedToBase {
float &fr = f0(C());
}
}
+
+namespace PR6483 {
+ struct X0 {
+ operator const unsigned int & () const;
+ };
+
+ struct X1 {
+ operator unsigned int & () const;
+ };
+
+ void f0(const bool &);
+ void f1(bool &); // expected-note 2{{not viable}}
+
+ void g(X0 x0, X1 x1) {
+ f0(x0);
+ f1(x0); // expected-error{{no matching function for call}}
+ f0(x1);
+ f1(x1); // expected-error{{no matching function for call}}
+ }
+}
OpenPOWER on IntegriCloud