[clang] Initial implementation of P2719 (PR #113510)
Erich Keane via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 25 09:54:55 PDT 2024
================
@@ -2474,19 +2474,46 @@ bool CXXMethodDecl::isUsualDeallocationFunction(
getOverloadedOperator() != OO_Array_Delete)
return false;
+ auto NumParams = getNumParams();
+ bool IsTypeAware = IsTypeAwareOperatorNewOrDelete();
+
// C++ [basic.stc.dynamic.deallocation]p2:
// A template instance is never a usual deallocation function,
// regardless of its signature.
- if (getPrimaryTemplate())
- return false;
+ if (auto *PrimaryTemplate = getPrimaryTemplate()) {
+ // Addendum: a template instance is a usual deallocation function if there
+ // is a single template parameter, that parameter is a type, only the first
+ // parameter is dependent, and that parameter is a specialization of
+ // std::type_identity
+ if (!IsTypeAware) {
----------------
erichkeane wrote:
What is gonig on here? isn't this always a dead branch?
https://github.com/llvm/llvm-project/pull/113510
More information about the cfe-commits
mailing list