[PATCH] D45680: [C++2a] Add operator<=> Rewriting - Early Attempt
Eric Fiselier via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat May 5 21:11:14 PDT 2018
EricWF updated this revision to Diff 145390.
EricWF marked 7 inline comments as done.
EricWF added a comment.
- Remove the `= default` changes as requested.
- Attempt to work around ambiguity in overload resolution caused by differing lvalue or qualification conversions when ranking synthesized candidates. For example:
struct T {};
auto operator<=>(T const&, T&&);
T{} <=> T{}; // Ambiguous according to the current spec.
The workaround ignores worse implicit conversions when the conversions are both an exact match and a rewritten candidate tie-breaker is present.
https://reviews.llvm.org/D45680
Files:
include/clang/AST/ExprCXX.h
include/clang/AST/RecursiveASTVisitor.h
include/clang/Basic/StmtNodes.td
include/clang/Sema/Overload.h
include/clang/Sema/Sema.h
include/clang/Serialization/ASTBitCodes.h
lib/AST/Expr.cpp
lib/AST/ExprClassification.cpp
lib/AST/ExprConstant.cpp
lib/AST/ItaniumMangle.cpp
lib/AST/StmtPrinter.cpp
lib/AST/StmtProfile.cpp
lib/CodeGen/CGExprScalar.cpp
lib/Sema/SemaExceptionSpec.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/TreeTransform.h
lib/Serialization/ASTReaderStmt.cpp
lib/Serialization/ASTWriterStmt.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
test/CodeGenCXX/cxx2a-compare.cpp
test/SemaCXX/compare-cxx2a.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45680.145390.patch
Type: text/x-patch
Size: 69305 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180506/eaaea786/attachment-0001.bin>
More information about the cfe-commits
mailing list