diff options
author | Faisal Vali <faisalv@yahoo.com> | 2017-10-22 14:45:08 +0000 |
---|---|---|
committer | Faisal Vali <faisalv@yahoo.com> | 2017-10-22 14:45:08 +0000 |
commit | 81b756e6a3e491d43ac18ed39a9ffb13f45b9ea4 (patch) | |
tree | 762ec03f44a2797d6b752817939e266589ef56db /lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp | |
parent | 7ab2d0bdcdc218d83faa90751a2cf2f34587ccc1 (diff) | |
download | bcm5719-llvm-81b756e6a3e491d43ac18ed39a9ffb13f45b9ea4.tar.gz bcm5719-llvm-81b756e6a3e491d43ac18ed39a9ffb13f45b9ea4.zip |
[C++17] Fix PR34970 - tweak overload resolution for class template deduction-guides in line with WG21's p0620r0.
In order to identify the copy deduction candidate, I considered two approaches:
- attempt to determine whether an implicit guide is a copy deduction candidate by checking certain properties of its subsituted parameter during overload-resolution.
- using one of the many bits (WillHaveBody) from FunctionDecl (that CXXDeductionGuideDecl inherits from) that are otherwise irrelevant for deduction guides
After some brittle gymnastics w the first strategy, I settled on the second, although to avoid confusion and to give that bit a better name, i turned it into a member of an anonymous union.
Given this identification 'bit', the tweak to overload resolution was a simple reordering of the deduction guide checks (in SemaOverload.cpp::isBetterOverloadCandidate), in-line with Jason Merrill's p0620r0 drafting which made it into the working paper. Concordant with that, I made sure the copy deduction candidate is always added.
References:
See https://bugs.llvm.org/show_bug.cgi?id=34970
See http://wg21.link/p0620r0
llvm-svn: 316292
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp')
0 files changed, 0 insertions, 0 deletions