[PATCH] D45476: [C++2a] Implement operator<=> CodeGen and ExprConstant

Eric Fiselier via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 13 20:53:54 PDT 2018


EricWF updated this revision to Diff 142506.
EricWF added a comment.

Implement the lookup and building of comparison category types/values in `ASTContext` instead of `Sema`. When Sema checks a comparison category type, it performs full lookup, whereas `ASTContext` does not. Should `Sema` depend on `ASTContext` for performing lookup?

This change also moves `ComparisonCategories.h` from trafficking in `DeclRefExpr`s, using `VarDecl` instead. For now `ExprConstant` and `CGExprAgg` build dummy `DeclRefExpr`s for ease of evaluation. But I plan to fix this shortly, once I figure out how to do it.


https://reviews.llvm.org/D45476

Files:
  include/clang/AST/ASTContext.h
  include/clang/AST/ComparisonCategories.h
  include/clang/Basic/DiagnosticSemaKinds.td
  include/clang/Sema/Overload.h
  include/clang/Sema/Sema.h
  lib/AST/ASTContext.cpp
  lib/AST/CMakeLists.txt
  lib/AST/ComparisonCategories.cpp
  lib/AST/ExprConstant.cpp
  lib/CodeGen/CGExprAgg.cpp
  lib/Sema/SemaDeclCXX.cpp
  lib/Sema/SemaExpr.cpp
  lib/Sema/SemaOverload.cpp
  test/CodeGenCXX/Inputs/std-compare.h
  test/CodeGenCXX/cxx2a-compare.cpp
  test/PCH/Inputs/std-compare.h
  test/PCH/cxx2a-compare.cpp
  test/SemaCXX/Inputs/std-compare.h
  test/SemaCXX/compare-cxx2a.cpp
  test/SemaCXX/constant-expression-cxx2a.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45476.142506.patch
Type: text/x-patch
Size: 146769 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180414/ec156abc/attachment-0001.bin>


More information about the cfe-commits mailing list