[c++] implements tentative DR1432 for partial ordering of function template
authorYuanfang Chen <yuanfang.chen@sony.com>
Mon, 3 Oct 2022 22:50:24 +0000 (15:50 -0700)
committerYuanfang Chen <yuanfang.chen@sony.com>
Mon, 3 Oct 2022 23:30:27 +0000 (16:30 -0700)
commit1fb728e95c74bf72698c00094f18fa8d2eb42cda
tree6ad85c93ba59dd48c849b8267c38b24950ae2abb
parentc7652dbed4beb1a417f6810e8bf7fb4f2625f536
[c++] implements tentative DR1432 for partial ordering of function template

D128745 handled DR1432 for the partial ordering of partial specializations, but
missed the handling for the partial ordering of function templates. This patch
implements the latter. While at it, also simplifies the previous implementation to
be more close to the wording without functional changes.

Fixes https://github.com/llvm/llvm-project/issues/56090

Reviewed By: erichkeane, #clang-language-wg, mizvekov

Differential Revision: https://reviews.llvm.org/D133683
clang/docs/ReleaseNotes.rst
clang/lib/Sema/SemaTemplateDeduction.cpp
clang/test/CXX/drs/dr6xx.cpp
clang/test/SemaCXX/pre-dr692.cpp [new file with mode: 0644]