llvm-project
a70f534a - Revert "[LifetimeSafety] Merge lifetimebound attribute on implicit 'this' across method redeclarations (#172146)"

Commit
71 days ago
Revert "[LifetimeSafety] Merge lifetimebound attribute on implicit 'this' across method redeclarations (#172146)" This caused assertion failures, see comment on the PR: clang/lib/Sema/TypeLocBuilder.cpp:89: TypeLoc clang::TypeLocBuilder::pushImpl(QualType, size_t, unsigned int): Assertion `TLast == LastTy && "mismatch between last type and new type's inner type"' failed. > Followup on https://github.com/llvm/llvm-project/pull/107627 > Fixes https://github.com/llvm/llvm-project/issues/62072 > Fixes https://github.com/llvm/llvm-project/issues/172013 > Fixes https://github.com/llvm/llvm-project/issues/175391 > > This PR adds support for merging the `lifetimebound` attribute on the implicit `this` parameter when merging method declarations. Previously, if a method was declared with `lifetimebound` on its function type (which represents the implicit `this` parameter), this attribute would not be propagated to the method definition, causing lifetime safety warnings to be missed. > > The implementation adds helper functions to extract the `lifetimebound` attribute from a function type and to merge this attribute from an old method declaration to a new one when appropriate. This reverts commit ef90ba684d012790c86ac1b5e7c6b325abe78803.
Author
Committer
Parents
Loading