summaryrefslogtreecommitdiffstats
path: root/test/CodeGenCXX/cxx2a-compare.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [C++2a] Implement operator<=>: Fix another bug in the code gen tests.Eric Fiselier2018-05-081-1/+2
| | | | | | | Sorry for the failures. I'm quite new at writing code gen tests, and I'm not sure the best way to make them portable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@331745 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix failing codegen test on non-x86_64 platformsEric Fiselier2018-05-071-38/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@331697 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++2a] Implement operator<=> CodeGen and ExprConstantEric Fiselier2018-05-071-0/+186
Summary: This patch tackles long hanging fruit for the builtin operator<=> expressions. It is currently needs some cleanup before landing, but I want to get some initial feedback. The main changes are: * Lookup, build, and store the required standard library types and expressions in `ASTContext`. By storing them in ASTContext we don't need to store (and duplicate) the required expressions in the BinaryOperator AST nodes. * Implement [expr.spaceship] checking, including diagnosing narrowing conversions. * Implement `ExprConstant` for builtin spaceship operators. * Implement builitin operator<=> support in `CodeGenAgg`. Initially I emitted the required comparisons using `ScalarExprEmitter::VisitBinaryOperator`, but this caused the operand expressions to be emitted once for every required cmp. * Implement [builtin.over] with modifications to support the intent of P0946R0. See the note on `BuiltinOperatorOverloadBuilder::addThreeWayArithmeticOverloads` for more information about the workaround. Reviewers: rsmith, aaron.ballman, majnemer, rnk, compnerd, rjmccall Reviewed By: rjmccall Subscribers: rjmccall, rsmith, aaron.ballman, junbuml, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D45476 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@331677 91177308-0d34-0410-b5e6-96231b3b80d8