[all-commits] [llvm/llvm-project] 21eb1a: [Concepts] Implement overload resolution for destr...

Roy Jacobson via All-commits all-commits at lists.llvm.org
Sat Jun 18 14:30:53 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 21eb1af469c3257606aec2270d544e0e8ecf77b2
      https://github.com/llvm/llvm-project/commit/21eb1af469c3257606aec2270d544e0e8ecf77b2
  Author: Roy Jacobson <roi.jacobson1 at gmail.com>
  Date:   2022-06-19 (Sun, 19 Jun 2022)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclCXX.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/test/AST/ast-dump-decl.cpp
    A clang/test/AST/overloaded-destructors.cpp
    A clang/test/CXX/class/class.dtor/p4.cpp
    M clang/test/CXX/over/over.match/over.match.viable/p3.cpp
    M clang/test/SemaTemplate/destructor-template.cpp

  Log Message:
  -----------
  [Concepts] Implement overload resolution for destructors (P0848)

This patch implements a necessary part of P0848, the overload resolution for destructors.
It is now possible to overload destructors based on constraints, and the eligible destructor
will be selected at the end of the class.

The approach this patch takes is to perform the overload resolution in Sema::ActOnFields
and to mark the selected destructor using a new property in FunctionDeclBitfields.

CXXRecordDecl::getDestructor is then modified to use this property to return the correct
destructor.

This closes https://github.com/llvm/llvm-project/issues/45614.

Reviewed By: #clang-language-wg, erichkeane

Differential Revision: https://reviews.llvm.org/D126194




More information about the All-commits mailing list