llvm-project/clang/test/PCH/Inputs
Eric Fiselier 0683c0e68d [C++2a] Implement operator<=> CodeGen and ExprConstant
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

llvm-svn: 331677
2018-05-07 21:07:10 +00:00
..
badpch-dir.h.gch
libroot/usr/include Re-apply "test: Use add_lit_testsuites so that subsets of tests can be specified" 2016-07-05 17:54:40 +00:00
modules
__va_list_tag-typedef.h
__va_list_tag.h
arc.h
badpch-empty.h.gch
case-insensitive-include.h
chain-decls1.h
chain-decls2.h
chain-ext_vector1.h
chain-ext_vector2.h
chain-external-defs1.h
chain-external-defs2.h
chain-macro-override1.h
chain-macro-override2.h
chain-macro1.h
chain-macro2.h
chain-remap-types1.h
chain-remap-types2.h
chain-selectors1.h
chain-selectors2.h
chain-trivial1.h
chain-trivial2.h
cuda.h
cxx-method.h
cxx11-statement-attributes.h
namespaces.h
pr27445.h Fix a bug involving deferred decl emission and PCH 2016-04-22 18:46:33 +00:00
pragma-once.h Support '#pragma once' in headers when using PCH 2016-07-25 17:17:06 +00:00
pragma-once2-pch.h [PCH] Add a fno-pch-timestamp option to cc1 to disable inclusion of timestamps in PCH files. 2016-07-13 14:21:11 +00:00
pragma-once2.h [PCH] Add a fno-pch-timestamp option to cc1 to disable inclusion of timestamps in PCH files. 2016-07-13 14:21:11 +00:00
preamble.h
std-compare.h [C++2a] Implement operator<=> CodeGen and ExprConstant 2018-05-07 21:07:10 +00:00
typo.h
typo.hpp
va_arg.h
working-directory-1.h