aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend/MultiplexConsumer.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-01-25 19:39:31 +0000
committerDouglas Gregor <dgregor@apple.com>2011-01-25 19:39:31 +0000
commit48a4ce7d484a448490edfe9e1d47b806cee85f30 (patch)
treecf66a419edab829b4ca3e10c1e71ae03d1685655 /lib/Frontend/MultiplexConsumer.cpp
parente3115e257163321ecde429aeae75f1702f099d4c (diff)
Fix the ranking of reference bindings during overload resolution
(C++0x [over.ics.rank]p3) when one binding is an lvalue reference and the other is an rvalue reference that binds to an rvalue. In particular, we were using the predict "is an rvalue reference" rather than "is an rvalue reference that binds to an rvalue", which was incorrect in the one case where an rvalue reference can bind to an lvalue: function references. This particular issue cropped up with std::forward, where Clang was picking an std::forward overload while forwarding an (lvalue) reference to a function. However (and unfortunately!), the right answer for this code is that the call to std::forward is ambiguous. Clang now gets that right, but we need to revisit the std::forward implementation in libc++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124216 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Frontend/MultiplexConsumer.cpp')
0 files changed, 0 insertions, 0 deletions