[clang] [clang] Introduce [[clang::lifetime_capture_by(X)]] (PR #111499)
Haojian Wu via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 22 00:44:57 PDT 2024
================
@@ -248,9 +256,12 @@ static void visitLocalsRetainedByReferenceBinding(IndirectLocalPath &Path,
LocalVisitor Visit);
template <typename T> static bool isRecordWithAttr(QualType Type) {
- if (auto *RD = Type->getAsCXXRecordDecl())
- return RD->hasAttr<T>();
- return false;
+ CXXRecordDecl *RD = Type.getNonReferenceType()->getAsCXXRecordDecl();
+ if (!RD)
+ return false;
+ if (auto *CTSD = dyn_cast<ClassTemplateSpecializationDecl>(RD))
----------------
hokein wrote:
Why do we need to handle template specializations specifically? The GSL pointer/owner attribute should propagate from the primary template to its specializations.
https://github.com/llvm/llvm-project/pull/111499
More information about the cfe-commits
mailing list